Пример #1
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);
            }
        }
Пример #2
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);
        }