public void ThreadSockReceive() { _sock.Listen(23476); Assert.AreEqual(IPAddress.Any, _sock.LocalEndPoint.Address); Assert.AreEqual(23476, _sock.LocalEndPoint.Port); UdpClient udpClient = new UdpClient(); udpClient.Connect(IPAddress.Loopback, 23476); udpClient.Send(BitConverter.GetBytes(123456789), 4); var receivedPacket = Utils.WaitOnReceive(_sock); Assert.AreEqual(123456789, BitConverter.ToInt32(receivedPacket.Buffer, 0)); Assert.AreEqual(0, receivedPacket.Offset); Assert.AreEqual(4, receivedPacket.Length); Assert.AreEqual(2, _bufferPool.Rented.Count); Assert.AreEqual(0, _bufferPool.Returned.Count); }
public void SendMoreThanMTUDroppedOnReceiveByThreadSock() { var bufferPool = new ByteBufferPool(); var sock = new ThreadSock(bufferPool, AddressFamily.InterNetwork, new LoggerStub()); sock.Listen(23460); UdpClient udpClient = new UdpClient(); udpClient.Connect(IPAddress.Loopback, 23460); udpClient.Send(new byte[BareSock.MTU + 1], BareSock.MTU + 1); var receivedPacket = Utils.WaitOnReceive(sock); Assert.IsNull(receivedPacket.Buffer); Assert.AreEqual(0, receivedPacket.Offset); Assert.AreEqual(0, receivedPacket.Length); sock.Close(); }