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()); }
/// <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; }
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()); }
/// <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); } } }