Exemplo n.º 1
0
 protected PeerBase(InitRequest initRequest)
 {
     ConnectionId = initRequest.ConnectionId;
     switch (initRequest.Socket.SocketType)
     {
     case SocketType.Stream:
         _listener = new TcpSocket(this, initRequest.Socket);
         _listener.Start();
         break;
     }
 }
Exemplo n.º 2
0
        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();
        }
Exemplo n.º 3
0
 protected abstract PeerBase CreatePeer(InitRequest initRequest);