private async void ServerOnClientConnected(object sender, TcpClientEventArgs e) { _server.BeginAccept(); var client = new Socks5Client(e.Client) { ProxySending = args => ProxySending?.Invoke(this, args), ProxyReceiving = args => ProxyReceiving?.Invoke(this, args) }; client.InternalClient.ClientDisconnected += (o, args) => ClientDisconnected?.Invoke(this, new SocksClientEventArgs(client)); if (await HandleGreeting(client)) ClientConnected?.Invoke(this, new SocksClientEventArgs(client)); else InvalidClientConnected?.Invoke(this, new TcpClientEventArgs(e.Client)); await HandleConnectionInitiate(client); var buf = client.Receive(new byte[100]); client.StartTunneling(); _clients.Add(client); }
private static void ServerOnClientConnected(object sender, ClientEventArgs clientEventArgs) { Console.WriteLine("Client connected!"); var client = clientEventArgs.Client; client.ReceiveCompleted += ClientOnReceiveCompleted; client.BeginReceive(new byte[2048]); server.BeginAccept(); }