Esempio n. 1
0
 public BasicTcpPacket getPacket(byte[] bytes)
 {
     BasicTcpPacket packet;
     switch (bytes[BasicTcpPacket.PKT_POS_TYPE])
     {
         case BasicTcpPacket.PKT_TYPE_DISCONNECT:
             packet = new StandardDisconnectPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_DISCONNECT_ACK:
             packet = new StandardDisconnectAckPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_DISCONNECT_RS:
             packet = new StandardDisconnectRsPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_CONNECT_RS_ACK:
             packet = new StandardConnectRsAckPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_CONNECT_NAME_RS:
             packet = new StandardNamedConnectRsPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_CONNECT_NAME_RQ:
             packet = new StandardNamedConnectRqPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_DATA:
             packet = new StandardTcpDataPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_ACK:
             packet = new StandardAckPacket();
             break;
         case BasicTcpPacket.PKT_TYPE_NOP:
             packet = new StandardTcpNopPacket();
             break;
         default:
             throw new UnknownPacketException("Failed to determine packet type");
     }
     packet.ProcessPacket(bytes);
     return packet;
 }
Esempio n. 2
0
 private void ProcessConnectRsAck(StandardConnectRsAckPacket packet)
 {
     TcpConnectionHolder conn = null;
     try
     {
         conn = _tcpConnections.GetRemoteConnection(packet.ConnectionId);
         try
         {
             conn.Connection.Open();
             conn.StopTimerToOpen();
         }
         catch (Exception e)
         {
             Logger.Error("Error starting connection [" + conn.Connection.ConnectionId + "] : " + e.Message);
             if (conn != null)
             {
                 conn.Connection.Close();
             }
         }
     }
     catch (ConnectionException e)
     {
         Logger.Error("Dropping connect rs ack packet [" + packet + "], failed to get a connection : " + e.Message);
     }
 }