public NetSocket(INetProxy proxy, EndPoint endPoint, ISerializer serializer) { this.peer = new NetPeer(PeerIndex++, proxy, serializer); this.peer.OnClosed += OnPeerClosed; this.peer.OnMessage += OnPeerMessage; this.endPoint = endPoint ?? throw new ArgumentNullException("EndPoint can't be null!"); }
public NetPeer(ulong id, INetProxy proxy, ISerializer serializer) { this.Id = id; this.Proxy = proxy ?? throw new ArgumentNullException("Socket proxy can't be null!"); this.Serializer = serializer ?? throw new ArgumentNullException("Serializer can't be null!"); this.sendBuffer = this.storage.Alloc(BUFFER_SIZE); this.recvBuffer = this.storage.Alloc(BUFFER_SIZE); this.sendThread = new Thread(new ThreadStart(DoSendAsync)); this.sendThread.Start(); this.recvThread = new Thread(new ThreadStart(DoRecvAsync)); this.recvThread.Start(); }
private void OnEndAccept(INetProxy proxy, object payload) { var peer = (NetPeer)payload; try { var p = new NetPeer(PeerIndex++, proxy, peer.Serializer); p.OnClosed += OnPeerClosed; p.OnMessage += OnPeerMessage; this.OnConnected?.Invoke(p); } catch { } }