Example #1
0
 public ASyncClient(Socket socket)
 {
     state      = new ConnectionState(socket);
     zoneClient = new ZoneClient();
     zoneClient.UserIPAddress = ((IPEndPoint)state.socket.RemoteEndPoint).Address;
     zoneClient.packetsToBeSent.CollectionChanged += (sender, eventArgs) =>
     {
         if (!zoneClient.IsProcessingOrSendingPackets)
         {
             ASyncClient.SendPackets(this);
         }
     };
 }
Example #2
0
 public void ProcessRequest(byte[] receivedData)
 {
     try
     {
         lock (zoneClient.packetsToBeSent)
         {
             zoneClient.IsProcessingOrSendingPackets = true;
             zoneClient.packetsToBeSent.AddRange(
                 Zone.Process(zoneClient, receivedData));
         }
     }
     catch (Protocol.Packet.ZonePacket.NotEnoughBytesException ex)
     {
         zoneClient.IsProcessingOrSendingPackets = false;
         throw ex;
     }
     ASyncClient.SendPackets(this);
 }