示例#1
0
        public void TestTransport(IAcceptor acc, IConnector conn, string address, string port)
        {
            acceptor = acc;
            connector = conn;

            acceptor.Start();
            acceptor.NewTransportAccepted += SetupServer;
            acceptorThread = new Thread(RunAcceptor);
            acceptorThread.Name = "Acceptor";
            acceptorThread.IsBackground = true;
            acceptorThread.Start();

            client = connector.Connect(address, port, new Dictionary<string, string>());
            Assert.IsNotNull(client);
            client.PacketReceived += ClientReceivedPacket;

            for (int i = 0; i < 10; i++)
            {
                sourceData[0] = (byte)i;
                Debug("client: sending packet#" + i + ": "
                    + ByteUtils.DumpBytes(sourceData, 0, sourceData.Length));
                client.SendPacket(new TransportPacket(sourceData));
                if (failure.Length != 0)
                {
                    Assert.Fail(failure);
                }
                Thread.Sleep(500);
                client.Update();
            }
            Assert.AreEqual(10, serverPacketCount);
            Assert.AreEqual(10, clientPacketCount);

            try
            {
                client.SendPacket(new TransportPacket(new byte[client.MaximumPacketSize * 2]));
                Assert.Fail("Transport allowed sending packets exceeding its capacity");
            }
            catch (ContractViolation) { /* expected */ }
        }
示例#2
0
 public void SendPacket(ITransport transport, TransportPacket packet)
 {
     try
     {
         packet.Retain();
         SentPackets.Add(packet);
         transport.SendPacket(packet);
     }
     catch (TransportError e) { }
 }
示例#3
0
 protected override void TransportRejected(ITransport transport, IDictionary<string, string> capabilities)
 {
     TransportPacket tp = new TransportPacket(LWMCFv11.EncodeHeader(MessageType.System,
         (byte)SystemMessageType.IncompatibleVersion, 0));
     transport.SendPacket(tp);
     base.TransportRejected(transport, capabilities);
 }