Esempio n. 1
0
        private void sendNetworkIDs()
        {
            if (!serverSideNetworkIDsAssigned)
            {
                throw new InvalidOperationException(
                          "This PacketManagers ID's are not assigned so it cannot send networkIDs");
            }

            MemoryStream memStrm = new MemoryStream();
            BinaryWriter bw      = new BinaryWriter(memStrm);

            bw.Write((int)1);
            bw.Write((byte)InternalPacketType.NetworkIDsReply);

            bw.Write(transporterNetworkIDMap.Length);
            bw.Write(packetTransporters.Count);
            for (int i = 0; i < packetTransporters.Count; i++)
            {
                if (packetTransporters[i].NetworkID == -1)
                {
                    continue;
                }

                bw.Write(packetTransporters[i].NetworkID);
                bw.Write(packetTransporters[i].UniqueName);
            }

            //TODO: need encryption here?
            tcpConnection.SendPacket(memStrm.ToArray(), TCPPacketBuilder.TCPPacketFlags.None);
        }
Esempio n. 2
0
        public void SendData(int type, object data)
        {
            byte[] bytes = null;
            if (data != null)
            {
                BinaryFormatter binaryFormatter = new BinaryFormatter();
                using (MemoryStream stream = new MemoryStream())
                {
                    binaryFormatter.Serialize(stream, data);
                    bytes = stream.ToArray();
                }
            }

            using (Packet packet = new Packet(type))
            {
                if (bytes != null)
                {
                    packet.SetBytes(bytes);
                }
                packet.WriteLength();
                ClientTCP.SendPacket(packet);
            }
        }
Esempio n. 3
0
        public void TestTCPConnect()
        {
            bool           success  = false;
            AutoResetEvent testDone = new AutoResetEvent(false);

            TCPConnectionListener listener = new TCPConnectionListener(5013);

            listener.Listening = true;
            TCPConnection client1 = null;

            listener.ClientConnected +=
                delegate(object sender, TCPConnectionListener.ClientConnectedEventArgs e)
            {
                Console.WriteLine("Client connected to server!");
                TCPConnection serverClient1 = new TCPConnection(e.CL);
                serverClient1.SendPacket(new byte[] { 1, 2, 3, 4 }, TCPPacketBuilder.TCPPacketFlags.None);
                serverClient1.Receiving = true;


                serverClient1.PacketRecievedAsync +=
                    delegate(object sender2, BaseConnection.PacketRecievedEventArgs e2)
                {
                    for (int i = 1; i < 4 + 1; i++)
                    {
                        if (e2.Dgram[i - 1] != i)
                        {
                            success = false;         // optional
                            testDone.Set();
                            return;
                        }
                    }
                    Console.WriteLine("Packet received from client!");

                    success = true;
                    testDone.Set();
                };
            };


            client1 = new TCPConnection();

            client1.ConnectedToServer +=
                delegate(object sender, TCPConnection.ConnectedToServerEventArgs e)
            {
                Console.WriteLine("Connected successfully!");
                client1.Receiving = true;
            };

            client1.ConnectError +=
                delegate(object sender, TCPConnection.ConnectErrorEventArgs e)
            {
                throw e.Ex;
            };

            client1.PacketRecievedAsync +=
                delegate(object sender, BaseConnection.PacketRecievedEventArgs e)
            {
                for (int i = 1; i < 4 + 1; i++)
                {
                    if (e.Dgram[i - 1] != i)
                    {
                        success = false;     // optional
                        testDone.Set();
                        return;
                    }
                }
                Console.WriteLine("Packet received from server!");
                client1.SendPacket(new byte[] { 1, 2, 3, 4 }, TCPPacketBuilder.TCPPacketFlags.None);
            };



            client1.Connect(System.Net.IPAddress.Parse("127.0.0.1"), 5013);

            //testDone.WaitOne(5000);
            testDone.WaitOne();

            Assert.True(success);
        }