void m_Peer_DataReceived(object sender, Utf8TcpPeerEventArgs e) { if (DataReceived != null) { DataReceived(this, e); } }
private void OnPeerDataReceived(object sender, Utf8TcpPeerEventArgs e) { if (DataReceived != null) { DataReceived(this, e); } }
private void AddNewClient(Socket socket) { if ((Options & Utf8TcpServerOptions.SingleClientOnly) != 0) { lock (m_PeerListLock) { foreach (var pp in m_PeerList) { pp.Disconnect(); } } } Utf8TcpPeer peer = new Utf8TcpPeer(this, socket); lock (m_PeerListLock) { m_PeerList.Add(peer); peer.ConnectionClosed += OnPeerDisconnected; peer.DataReceived += OnPeerDataReceived; } if (ClientConnected != null) { Utf8TcpPeerEventArgs args = new Utf8TcpPeerEventArgs(peer); ClientConnected(this, args); } peer.Start(); }
void m_Peer_ConnectionClosed(object sender, Utf8TcpPeerEventArgs e) { if (m_Peer != null) { m_Peer.ConnectionClosed -= m_Peer_ConnectionClosed; m_Peer.DataReceived -= m_Peer_DataReceived; m_Peer.Disconnect(); } m_Peer = null; if (ClientDisconnected != null) { ClientDisconnected(this, e); } RetryConnectionIfNeeded(); }
void OnPeerDisconnected(object sender, Utf8TcpPeerEventArgs e) { try { if (ClientDisconnected != null) { ClientDisconnected(this, e); } lock (m_PeerListLock) { m_PeerList.Remove(e.Peer); e.Peer.ConnectionClosed -= OnPeerDisconnected; e.Peer.DataReceived -= OnPeerDataReceived; } } catch { } }