public void Send(Packet p) { lock (DataToSendQueue) { DataToSendQueue.Enqueue(p.Serialize()); } //socket.SendAsync(p.Serialize()); }
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()); }
public void Send(Packet p) { // To everyone byte[] data = p.Serialize(); foreach (SocketComm s in Clients.Values) { if (s != null) s.Send(data); } }
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; }
public void BroadcastObjectUpdate(Packet p) { BroadcastPacket(p); }
public void BroadcastPacket(Packet p) { tcpServer.Send(p); }
public void SendPacket(Packet p, int clientID) { tcpServer.Send(p, clientID); }
void PacketReceived(int id, Packet p) { if (!Clients.Contains(id)) return; ClientPacketInfo cpi = new ClientPacketInfo(id, p); InputQueue.Enqueue(cpi); }
public void SendPacketToServer(Packet p) { OutputQueue.Enqueue(p); FrameworkDispatcher.Update(); }
public void BroadcastPacketToAllButOne(Packet p, int clientid) { tcpServer.SendToAllButOne(p, clientid); }
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()); } }
public void Send(Packet clientReadyPacket) { client.Send(clientReadyPacket); }
void PacketReceived(Helper.Multiplayer.Packets.Packet p) { InputQueue.Enqueue(p); }
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()); } }
public void CallPacketReceived(Packet p) { if (PacketReceived == null) return; PacketReceived(id, p); }
private void BroadcastPacket(Packet p) { foreach (ClientInfo ci in Clients.Values) ci.Send(p); }
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); }
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); } }
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); } }