Example #1
0
 public void Send(Packet p)
 {
     lock (DataToSendQueue)
     {
         DataToSendQueue.Enqueue(p.Serialize());
     }
     //socket.SendAsync(p.Serialize());
 }
Example #2
0
        public void Send(Packet packet)
        {
            Counter.AddTick("pps_out");
            //Counter.AddTick("average_pps_out", Counter.GetAverageValue("pps_out"));

            if (socket == null)
                return;

            socket.Send(packet.Serialize());
        }
Example #3
0
 public void Send(Packet p)
 {
     // To everyone
     byte[] data = p.Serialize();
     foreach (SocketComm s in Clients.Values)
     {
         if (s != null)
             s.Send(data);
     }
 }
Example #4
0
 public static Packet Read(byte[] data)
 {
     try
     {
         int itype = BitConverter.ToInt32(data, 0);
         Types ptype = (Types)itype;
         byte[] inner = new byte[data.Length - 4];
         for (int i = 4; i < data.Length; i++)
             inner[i - 4] = data[i];
         switch (ptype)
         {
             case Types.scObjectUpdate:
                 ObjectUpdatePacket oup = new ObjectUpdatePacket();
                 return oup.CustomDeserialize(inner);
             default:
                 Packet p = new Packet(Types.KeepAlive);
                 return p.Deserialize(inner);
         }
     }
     catch(Exception E)
     {
     }
     return null;
 }
Example #5
0
 public void BroadcastObjectUpdate(Packet p)
 {
     BroadcastPacket(p);
 }
Example #6
0
 public void BroadcastPacket(Packet p)
 {
     tcpServer.Send(p);
 }
Example #7
0
 public void SendPacket(Packet p, int clientID)
 {
     tcpServer.Send(p, clientID);
 }
Example #8
0
 void PacketReceived(int id, Packet p)
 {
     if (!Clients.Contains(id))
         return;
     ClientPacketInfo cpi = new ClientPacketInfo(id, p);
     InputQueue.Enqueue(cpi);
 }
Example #9
0
 public void SendPacketToServer(Packet p)
 {
     OutputQueue.Enqueue(p);
     FrameworkDispatcher.Update();
 }
Example #10
0
 public void BroadcastPacketToAllButOne(Packet p, int clientid)
 {
     tcpServer.SendToAllButOne(p, clientid);
 }
Example #11
0
 public void Send(Packet p, int id)
 {
     // To Specific id
     ClientInfoSocket s;
     if(Clients.TryGetValue(id, out s))
     {
         if(s != null)
             s.Send(p.Serialize());
     }
 }
Example #12
0
 public void Send(Packet clientReadyPacket)
 {
     client.Send(clientReadyPacket);
 }
Example #13
0
 void PacketReceived(Helper.Multiplayer.Packets.Packet p)
 {
     InputQueue.Enqueue(p);
 }
Example #14
0
        public void SendToAllButOne(Packet p, int id)
        {
            // Avoid the Specified id

            foreach (ClientInfoSocket s in Clients.Values)
            {
                if (s == null)
                    continue;
                if (s.ClientID == id)
                    continue;
                s.Send(p.Serialize());
            }
        }
Example #15
0
 public void CallPacketReceived(Packet p)
 {
     if (PacketReceived == null)
         return;
     PacketReceived(id, p);
 }
Example #16
0
 private void BroadcastPacket(Packet p)
 {
     foreach (ClientInfo ci in Clients.Values)
         ci.Send(p);
 }
Example #17
0
 void PacketReceived(int id, Packet p)
 {
     if (!Clients.ContainsKey(id))
         return;
     ClientInfo ci = Clients[id];
     ClientPacketInfo cpi = new ClientPacketInfo(ref ci, p);
     InputQueue.Enqueue(cpi);
 }
Example #18
0
        private void ProcessInputPacket(Packet packet)
        {
            if (packet is ClientInfoRequestPacket)
            {
                ClientInfoResponsePacket clientInfoResponse = new ClientInfoResponsePacket(sAlias);
                client.Send(clientInfoResponse);
            }
            else if (packet is ChatPacket)
            {
                ChatPacket cp = packet as ChatPacket;
                CallChatMessageReceived(cp.message, cp.player);
            }
            else if (packet is ObjectResponsePacket)
            {
                ObjectResponsePacket corp = packet as ObjectResponsePacket;
                CallObjectRequestResponseReceived(corp.ID, corp.AssetName);
            }
            else if (packet is ObjectUpdatePacket)
            {
                ObjectUpdatePacket oup = packet as ObjectUpdatePacket;
                CallObjectUpdateReceived(oup.objectId, oup.assetName, oup.position, oup.orientation, oup.velocity);
            }
            else if (packet is ObjectActionPacket)
            {
                ObjectActionPacket oap = packet as ObjectActionPacket;
                CallObjectActionReceived(oap.objectId, oap.actionParameters);
            }
            else if (packet is ClientDisconnectPacket)
            {
                ClientDisconnectPacket cdp = packet as ClientDisconnectPacket;

                CallClientDisconnected(cdp.Alias);
            }
        }
Example #19
0
 private void ProcessInputPacket(Packet packet)
 {
     if (packet is ClientInfoRequestPacket)
     {
         Trace.WriteLine("Received ClientInfoRequest");
         ClientInfoRequestPacket cir = packet as ClientInfoRequestPacket;
         ClientInfoResponsePacket clientInfoResponse = new ClientInfoResponsePacket(sAlias);
         client.Send(clientInfoResponse);
         CallClientInfoRequestReceived(cir.ID);
     }
     else if (packet is ChatPacket)
     {
         ChatPacket cp = packet as ChatPacket;
         CallChatMessageReceived(new ChatMessage(cp.message, cp.player));
     }
     else if (packet is ObjectAddedPacket)
     {
         Trace.WriteLine("Received ObjectAdded");
         ObjectAddedPacket corp = packet as ObjectAddedPacket;
         CallObjectRequestResponseReceived(corp.Owner, corp.ID, corp.AssetName);
     }
     else if (packet is ObjectUpdatePacket)
     {
         ObjectUpdatePacket oup = packet as ObjectUpdatePacket;
         CallObjectUpdateReceived(oup.objectId, oup.assetName, oup.position, oup.orientation, oup.velocity);
     }
     else if (packet is ObjectActionPacket)
     {
         ObjectActionPacket oap = packet as ObjectActionPacket;
         CallObjectActionReceived(oap.objectId, oap.actionParameters);
     }
     else if (packet is ClientDisconnectPacket)
     {
         ClientDisconnectPacket cdp = packet as ClientDisconnectPacket;
         CallOtherClientDisconnectedFromServer(cdp.id);
     }
     else if (packet is ClientConnectedPacket)
     {
         ClientConnectedPacket ccp = packet as ClientConnectedPacket;
         CallOtherClientConnectedToServer(ccp.ID, ccp.Alias);
     }
     else if (packet is ObjectAttributePacket)
     {
         ObjectAttributePacket oap = packet as ObjectAttributePacket;
         CallObjectAttributeReceived(oap);
     }
     else if (packet is ObjectDeletedPacket)
     {
         Trace.WriteLine("Received ObjectDelete");
         ObjectDeletedPacket odp = packet as ObjectDeletedPacket;
         CallObjectDeleteReceived(odp);
     }
 }