Beispiel #1
0
        private void ProcessNetStatus(CONNECT_STATUS st, object o)
        {
            D("processDiscovery : st : " + st + "object : " + o + "ConnectStatusCallBackHandler:" + UpdateUiHandler);
            UpdateUiHandler?.Invoke(st, new object[] { o });
            switch (st)
            {
            case CONNECT_STATUS.DISCOVERY_INIT_OK:
                break;

            case CONNECT_STATUS.DISCOVERY_GET_PCB:
                _PcbTcpServerEndPoint = (IPEndPoint)o;
                _TcpCmdClient         = new TcpCmdClient(_PcbTcpServerEndPoint);

                _TcpCmdClient.TcpStatusChangeHandler += ProcessNetStatus;
                break;

            case CONNECT_STATUS.TCP_CONNECT_OK:     //network is ok. so I open TcpServer.
                if (ProgramInfo.PCIPaddr != null && !_hasFtprun)
                {
                    FtpInstanceServer.instance.Start(ProgramInfo.FtpServerRootPath, ProgramInfo.PCIPaddr);
                    FtpInstanceServer.instance.FtpServerStatusChangeeHandler += ProcessNetStatus;
                    _hasFtprun = true;
                }
                break;

            case CONNECT_STATUS.TCP_RECEIVE_MSG:
                _RxMsgDispatch.ProcessRxMsg((string)o);
                break;

            default:
                break;
            }
        }
        //check the packet is port 808
        void device_OnPacketArrival(object sender, CaptureEventArgs e)
        {
            if (e.Packet.Data.Length < 20)
                return;

            Packet p = null;
            TcpPacket tcp = null;
            try
            {
                p = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);
                tcp = TcpPacket.GetEncapsulated(p);

            }
            catch
            {
                return;
            }
            if (tcp == null)
                return;
            ushort portToFind = 808;
            if (tcp.DestinationPort == portToFind || tcp.DestinationPort == portToFind)
            {
                UpdateUiHandler handler = new UpdateUiHandler(SetCommunicating);
                Object[] args = new Object[] { true };
                this.BeginInvoke(handler, args);
            }
        }
Beispiel #3
0
        //check the packet is port 808
        void device_OnPacketArrival(object sender, CaptureEventArgs e)
        {
            if (e.Packet.Data.Length < 20)
            {
                return;
            }

            Packet    p   = null;
            TcpPacket tcp = null;

            try
            {
                p   = Packet.ParsePacket(e.Packet.LinkLayerType, e.Packet.Data);
                tcp = TcpPacket.GetEncapsulated(p);
            }
            catch
            {
                return;
            }
            if (tcp == null)
            {
                return;
            }
            ushort portToFind = 808;

            if (tcp.DestinationPort == portToFind || tcp.DestinationPort == portToFind)
            {
                UpdateUiHandler handler = new UpdateUiHandler(SetCommunicating);
                Object[]        args    = new Object[] { true };
                this.BeginInvoke(handler, args);
            }
        }
Beispiel #4
0
        public static void Switch(GPCMClient client, Dictionary <string, string> recv, GPCMConnectionUpdate OnSuccessfulLogin, GPCMStatusChanged OnStatusChanged)
        {
            string command = recv.Keys.First();

            try
            {
                switch (command)
                {
                case "inviteto":
                    InviteToHandler.AddFriends(client, recv);
                    break;

                case "login":
                    LoginHandler.ProcessLogin(client, recv, OnSuccessfulLogin, OnStatusChanged);
                    break;

                case "getprofile":
                    GetProfileHandler.SendProfile(client, recv);
                    break;

                case "addbuddy":
                    AddBuddyHandler.Addfriends(client, recv);
                    break;

                case "delbuddy":
                    DelBuddyHandler.Handle(client, recv);
                    break;

                case "updateui":
                    UpdateUiHandler.UpdateUi(client, recv);
                    break;

                case "updatepro":
                    UpdateProHandler.UpdateUser(client, recv);
                    break;

                case "registernick":
                    RegisterNickHandler.RegisterNick(client, recv);
                    break;

                case "logout":
                    client.DisconnectByReason(DisconnectReason.NormalLogout);
                    break;

                case "status":
                    StatusHandler.UpdateStatus(client, recv, OnStatusChanged);
                    break;

                case "newuser":
                    NewUserHandler.NewUser(client, recv);
                    break;

                case "ka":
                    KAHandler.SendKeepAlive(client);
                    break;

                default:
                    LogWriter.Log.Write("[GPCM] received unknown data " + command, LogLevel.Debug);
                    GameSpyUtils.SendGPError(client, GPErrorCode.General, "An invalid request was sended.");
                    break;
                }
            }
            catch (Exception e)
            {
                LogWriter.Log.WriteException(e);
            }
        }