Beispiel #1
0
            public void ConnectToIncorrectPort()
            {
                TcpNetworkServer server = new TcpNetworkServer();
                TcpNetworkClient client = new TcpNetworkClient();

                Assert.IsTrue(server.Bind(m_CorrectPort));
                Assert.IsFalse(client.Connect(m_CorrectAddress, m_IncorrectPort));
                Assert.IsTrue(server.Disconnect());
            }
Beispiel #2
0
 /// <summary>Constructor.</summary>
 /// <param name="server">Server.</param>
 /// <param name="client">Client.</param>
 public ServerClientPair(TcpNetworkServer server,
                         TcpClient client,
                         ServerReadCallback readCallback,
                         Byte[] buffer)
 {
     Server       = server;
     Client       = client;
     ReadCallback = readCallback;
     Buffer       = buffer;
 }
Beispiel #3
0
            public void ReadHappyPath()
            {
                TcpNetworkServer server = new TcpNetworkServer();
                TcpNetworkClient client = new TcpNetworkClient();

                Assert.IsTrue(server.Bind(m_CorrectPort, ServerReadCallback));
                Assert.IsTrue(client.Connect(m_CorrectAddress, m_CorrectPort, ClientReadCallback));

                System.Threading.Thread.Sleep(1000);
                m_ReadResult = false;
                Assert.AreEqual(server.SendPacket(( IPEndPoint )client.GetHandle().Client.LocalEndPoint,
                                                  m_ClientTestData,
                                                  ( UInt32 )m_ClientTestData.Length),
                                ( UInt32 )m_ClientTestData.Length);
                System.Threading.Thread.Sleep(1000);
                Assert.IsTrue(m_ReadResult);
                m_ReadResult = false;
                Assert.AreEqual(client.SendPacket(m_ServerTestData, ( UInt32 )m_ServerTestData.Length), ( UInt32 )m_ServerTestData.Length);
                System.Threading.Thread.Sleep(1000);
                Assert.IsTrue(m_ReadResult);
                Assert.IsTrue(client.Disconnect());
                Assert.IsTrue(server.Disconnect());
            }
Beispiel #4
0
            /// <summary>Callback after receiving a packet of data.</summary>
            /// <param name="result">Result of the operation.</param>
            private static void ReadCallback(IAsyncResult result)
            {
                ServerClientPair pair = ( ServerClientPair )result.AsyncState;

                if (pair.ReadCallback != null)
                {
                    TcpNetworkServer server = pair.Server;
                    TcpClient        client = pair.Client;
                    Byte[]           buffer = pair.Buffer;

                    Int32 dataReceived = client.Client.EndReceive(result);

                    if (dataReceived == 0)
                    {
                        server.DisconnectClient(client);
                    }
                    else if (dataReceived > 0)
                    {
                        pair.ReadCallback(server, client, buffer, ( UInt32 )dataReceived);
                        client.Client.BeginReceive(buffer, 0, ( int )READ_BUFFER_SIZE, SocketFlags.None, ReadCallback, pair);
                    }
                }
            }