private void AcceptSocketCallback(IAsyncResult result) { var socket = Listener.EndAcceptSocket(result); var client = new TCPSocket(socket); lock (this.clients) this.clients.Add(client); socket.BeginReceive(client.Buffer, 0, client.Buffer.Length, 0, new AsyncCallback(ReadCallback), client); Listener.BeginAcceptTcpClient(AcceptSocketCallback, null); }
public void Send(TCPSocket tcpSocket, byte[] bytes) { try { tcpSocket.Socket.BeginSend(bytes, 0, bytes.Length, 0, new AsyncCallback(SendCallback), tcpSocket); } catch (Exception) { lock (this.clients) { this.clients.RemoveAll(x => x.Socket == tcpSocket.Socket); } } }