Skip to content

SevenProxy/yggdrasil

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Contexto

O servidor IRC é software que utiliza o protocolo TCP, para receber e enviar dados para a conexão estabelecida. O Projeto utiliza o modulo/lib tokio para iniciar essa conexão. No arquivo main.rs, temos a conexão sendo iniciada: /main.rs

pub use tokio::net::{TcpListener, TcpStream}; // Essa chamada do modulos já ocorre dentro de `lib.rs`, isso é apenas uma demostração.
use irc_server::{Handler, Mutex, ServerError, TcpListener};

#[tokio::main]
async fn main() -> Result<(), ServerError> {
  let listener: TcpStream = TcpListener::bind("127.0.0.1:6667").await?;

  // Precisamos deixa-la em loop, para receber multiplas conexões.
  loop {
    // Aqui usamos o metodo accept para receber uma conexão. Veja que socket passa a ser a conexão vinda do client.
    let (socket: TcpStream, _) = listener.accept().await?;

    // Em seguida, para evitar erros de multiplas conexões, ou sobrescrever conexões existentes, usamos o Mutext da lib/modulo Tokio.
    //
    // Com isso, garantimos que a conexão estabelecida não seja alterada ou sobescrita, deixando-as com um fluxo de controle melhor, pois assim teremos um controle de conexão único para cada client conectado.
    let socket = Arc::new(Mutex::new(socket));
  }
}

About

The IRC server is software that uses the TCP protocol to receive and send data for the established connection. The Project uses the tokio module/lib to initiate this connection. In the main.rs file, we have the connection being initiated: /main.rs

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages