protected PeerBase(InitRequest initRequest) { ConnectionId = initRequest.ConnectionId; switch (initRequest.Socket.SocketType) { case SocketType.Stream: _listener = new TcpSocket(this, initRequest.Socket); _listener.Start(); break; } }
public void Test() { var manualresetEvent = new ManualResetEvent(false); new Thread(async() => { var l = new TcpListener(new IPEndPoint(IPAddress.Loopback, 5000)); l.Start(); manualresetEvent.Set(); while (true) { var socket = await l.AcceptSocketAsync(); var connectionId = Interlocked.Increment(ref _connectionIdCounter); var initrequest = new InitRequest(connectionId, socket); var peer = CreatePeer(initrequest); Console.WriteLine($"PeerId:{connectionId}"); } }).Start(); var udpClient = new UdpClient(new IPEndPoint(IPAddress.Loopback, 5001)); new Thread(async() => { while (true) { var socket = await udpClient.ReceiveAsync(); if (socket.Buffer.Length != 60000) { Logger.Error(""); } var datagram = (Datagram)socket.Buffer; Console.WriteLine(datagram.AckNo); Logger.Debug($"EndPoint:{socket.RemoteEndPoint}"); } }).Start(); new Thread(async() => { while (true) { var socket = await udpClient.ReceiveAsync(); if (socket.Buffer.Length != 60000) { Logger.Error(""); } var datagram = (Datagram)socket.Buffer; Console.WriteLine(datagram.AckNo); Logger.Debug($"EndPoint:{socket.RemoteEndPoint}"); } }).Start(); manualresetEvent.WaitOne(); }
protected abstract PeerBase CreatePeer(InitRequest initRequest);