Ejemplo n.º 1
0
        static void StartClient(IAsyncClient client)
        {
            try
            {
                client.Connect("127.0.0.1", 30000);

                while (true)
                {
                    Console.Write(">");
                    string cmd = Console.ReadLine();
                    if (cmd == "")
                    {
                        break;
                    }

                    // Convert command to message
                    string msg = "CHAT " + cmd;

                    client.Send(msg);
                }

                client.Disconnect();
            }
            catch (Exception)
            {
                Console.ReadLine();
            }
        }
Ejemplo n.º 2
0
 public void TestFixtureSetUp()
 {
     var hostConfiguration = new HostConfiguration {UrlReservations = new UrlReservations {CreateAutomatically = true}};
     var baseAddress = new Uri("http://127.0.0.1:1337/");
     host = new NancyHost(hostConfiguration, baseAddress);
     host.Start();
     AsyncClient = new AsyncClient(baseAddress);
 }
 public ClientViewModelServices(IAsyncClient <Client> cnt, IAsyncClient <ClientAddress> ant,
                                IMapper mpr,
                                IClientService csv)
 {
     _clientRepositoryAsync  = cnt;
     _addressRepositoryAsync = ant;
     _mapper        = mpr;
     _clientService = csv;
 }
Ejemplo n.º 4
0
    void ReciveCallBack(IAsyncResult ar)
    {
        IAsyncClient obj     = (IAsyncClient)ar.AsyncState;
        Socket       handler = obj.sck;

        Debug.Log("Receive Message");

        int bytesRead = handler.EndReceive(ar);

        obj.recvbyte += bytesRead;

        if (obj.recvbyte > 0 || bytesRead > 0)
        {
            if (true == obj.signalread)
            {
                obj.recv_signal = obj.recvbuf[0];
                Buffer.BlockCopy(obj.recvbuf, 1, obj.recvbuf, 0, obj.recvbyte - 1);
                if (obj.recv_signal == NetworkController.SC_SELECT)
                {
                    select_scene   = true;
                    obj.recvbyte  -= 1;
                    obj.signalread = true;
                }
                else
                {
                    obj.recvbyte  -= 1;
                    obj.signalread = false;
                }

                Debug.Log(Convert.ToString(obj.recvbuf[0]) + " / " + Convert.ToString(obj.recv_signal));
                Debug.Log(obj.signalread);
            }
            else
            {
                if (obj.recv_signal == NetworkController.SC_CHARACTERINFOSET && obj.recvbyte >= 404)
                {
                    Buffer.BlockCopy(obj.recvbuf, 0, obj.cbuf, 0, 404);
                    object recvobj = NetFunc.ByteToObj(obj.cbuf);
                    Buffer.BlockCopy(obj.recvbuf, 404, obj.recvbuf, 0, obj.recvbyte - 404);
                    obj.recvbyte -= 404;


                    //캐릭터 인포 셋 수신
                    scinf         = (SC_CHARACTERINFOSET_PACKET)recvobj;
                    recv_charinfo = true;

                    //Debug.Log("type : " + Convert.ToString(res.characterinfo[].ch_type) + " / vit : " + Convert.ToString(res.ch_vit));

                    obj.recv_signal = NetworkController.S_NULL;
                    obj.signalread  = true;
                }
            }
        }
        obj.sck.BeginReceive(obj.recvbuf, obj.recvbyte, NetworkController.MAXBUFFERSIZE - obj.recvbyte, 0, new AsyncCallback(ReciveCallBack), obj);
    }
Ejemplo n.º 5
0
 public ClientService(IAsyncClient <Client> cnta, IClient <Client> cnt, IAsyncClient <ClientAddress> ant,
                      IAsyncClient <ClientAddressLevel> cdl,
                      IClient <ClientAddress> cds,
                      IClient <ClientAddressLevel> cal
                      )
 {
     _clientRepositoryAsync      = cnta;
     _clientRepository           = cnt;
     _addressRepositoryAsync     = ant;
     _addressTypeRepositoryAsync = cdl;
     _addressRepository          = cds;
     _addressTypeRepository      = cal;
 }
        public ConnectionSettingsViewModel()
        {
            _pageService        = new PageService();
            asyncSocketListener = AsyncSocketListener.Instance;
            asyncClient         = AsyncClient.Instance;


            if (asyncClient.IsConnected() == true)
            {
                Settings.ClientIsConnected = true;
            }
            else
            {
                Settings.ClientIsConnected = false;
            }


            ServerIsRunning      = Settings.ServerIsRunning;
            IsConnectToServer    = Settings.ClientIsConnected;
            ServerPort           = Settings.ServerPort;
            ClientConnectedCount = Settings.ServerClientConnectedQty;

            StartServerCommand                = new Command(() => StartServer());
            StopServerCommand                 = new Command(() => StopServer());
            ConnectToServerCommand            = new Command(() => ConnectToServer());
            StartPresentationForCLientCommand = new Command(async() => await StartPresentationForCLient());
            DisconnectWithServerCommand       = new Command(() => DisconnectWithServer());


            IPServerAdress = Dns.GetHostEntry(Dns.GetHostName()).AddressList[0].ToString();



            MessagingCenter.Subscribe <AsyncSocketListener, Boolean>
                (this, Events.SendPlaylist, OnServerIsRunning);

            MessagingCenter.Subscribe <AsyncSocketListener, int>
                (this, Events.ClientConnected, OnClientConnected);

            MessagingCenter.Subscribe <AsyncSocketListener, int>
                (this, Events.ClientDisconnected, OnClientDisconnected);

            MessagingCenter.Subscribe <AsyncClient, Boolean>
                (this, Events.ConnectToServer, OnConnectToServer);
        }
        public SongTextPresentationViewModel()
        {
            songRepository = new SongRepository(DependencyService.Get <ISQLiteDb>());

            MessagingCenter.Subscribe <PlaylistDetailViewModel, PlaylistViewModel>
                (this, Events.SendPlaylistToPresentation, OnPlaylistSended);

            MessagingCenter.Subscribe <ConnectionSettingsViewModel, Boolean>
                (this, Events.ConnectToServer, OnConnectToServer);

            MessagingCenter.Subscribe <AsyncClient, string>
                (this, Events.SendedText, OnTextRecive);

            MessagingCenter.Subscribe <SongListViewModel, SongViewModel>
                (this, Events.SendSongToPresentation, OnSongSended);

            asyncSocketListener = AsyncSocketListener.Instance;
            asyncClient         = AsyncClient.Instance;

            FontSize = Double.Parse(Settings.FontSize);

            ShowChords = Settings.ShowChords;
        }
Ejemplo n.º 8
0
 public GetDeviceStatus(IControllerIdentificationService controllerIdentificationService, IAsyncClient asyncClient)
     : base(controllerIdentificationService, asyncClient)
 {
 }
Ejemplo n.º 9
0
    private int ConnectToPC()
    {
        //소켓 설정
        sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
        IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(ip), 8080);

        //Connect
        try
        {
            sck.Connect(localEndPoint);
        }
        catch
        {
            Debug.Log("Unable to connect to remote end point!\r\n");
            return(0);
        }
        Debug.Log("Perfect!!");
        //Buffer = new byte[NetworkController.MAXBUFFERSIZE];//sck.socketbuffersize 에서 변경

        //시그널 수신
        //char s;
        NetFunc.net_recv_signal(sck);

        //플레이어 정보 수신

        SC_CONNECT_PACKET SCpack = new SC_CONNECT_PACKET();
        object            obj;

        obj = NetFunc.net_recv(sck, NetworkController.SC_CONNECT);
        if (obj == null)
        {
            return(0);            //error
        }
        SCpack = (SC_CONNECT_PACKET)obj;

        // Debug.Log((int)SCpack.id + " " + SCpack.color);
        My_Info = SCpack;
        //시그널 전송
        NetFunc.net_send_signal(NetworkController.CS_CONNECT, sck);



        //닉네임 전송
        CS_CONNECT_PACKET CSpacket = new CS_CONNECT_PACKET();

        CSpacket.nickname = name;
        CSpacket.id       = SCpack.id;


        buffer = NetFunc.ObjToByte(CSpacket);
        NetFunc.net_send(CSpacket, sck, NetworkController.CS_CONNECT);

        //비동기 시작
        IAsyncClient sync_obj = new IAsyncClient();

        sync_obj.sck = sck;

        buffer = new byte[NetworkController.MAXBUFFERSIZE];
        sck.BeginReceive(sync_obj.recvbuf, 0, NetworkController.MAXBUFFERSIZE, 0, new AsyncCallback(ReciveCallBack), sync_obj);

        return(1);
    }
Ejemplo n.º 10
0
 public GetRealTimeClock(IControllerIdentificationService controllerIdentificationService, IAsyncClient asyncClient)
     : base(controllerIdentificationService, asyncClient)
 {
 }
Ejemplo n.º 11
0
        public ArenaClientForm()
        {
            InitializeComponent();

            MyIniParser = new IniParser();

            string strWidth = MyIniParser.GetSetting(IniConstants.SECTION_SETTINGS, IniConstants.CLIENT_WINDOW_WIDTH, 800);
            string strHeight = MyIniParser.GetSetting(IniConstants.SECTION_SETTINGS, IniConstants.CLIENT_WINDOW_HEIGHT, 500);
            int width, height;
            if (int.TryParse(strWidth, out width))
                this.Width = width;
            if (int.TryParse(strHeight, out height))
                this.Height = height;
            LoginUserNameTextBox.Text = MyIniParser.GetSetting(IniConstants.SECTION_SETTINGS, IniConstants.CLIENT_LOGIN_NAME, string.Empty);
            //ServerAddressComboBox.Text = MyIniParser.GetSetting(IniConstants.SECTION_SETTINGS, IniConstants.CLIENT_SERVER_ADDRESS, "127.0.0.1:30000");

            string[] serverList = MyIniParser.GetSetting(IniConstants.SECTION_SETTINGS, IniConstants.CLIENT_SERVER_LIST, string.Empty).Split(',');
            foreach (string s in serverList)
            {
                if (s != string.Empty)
                {
                    ServerAddressComboBox.Items.Add(s);
                    ServerListCount++;
                }
            }

            if (ServerListCount > 0)
            {
                ServerAddressComboBox.SelectedIndex = 0;
                ServerAddressComboBox.Text = (string)ServerAddressComboBox.SelectedItem;
            }
            else
            {
                ServerAddressComboBox.Text = string.Empty;
            }

            ServerAddressComboBox.Items.Add("----------履歴----------");

            serverList = MyIniParser.GetSetting(IniConstants.SECTION_SETTINGS, IniConstants.CLIENT_SERVER_HISTORY, string.Empty).Split(',');
            foreach (string s in serverList)
            {
                if (s != string.Empty)
                {
                    if (ServerHistory.Count >= MaxServerHistory) break;

                    ServerAddressComboBox.Items.Add(s);
                    ServerHistory.Add(s);
                }
            }
            ServerHistory.Reverse();

            GoTo(OperationMode.Offline);

            ArenaSessionClient = new AsyncTcpClient(new SessionHandler(this));
            ArenaTunnelClient = new AsyncUdpClient(new TunnelHandler(this));

            //UdpPortTextBox_TextChanged(null, null);

            ResetServerStatusBar();
            RefreshLanAdapterList();

            AppendToChatTextBoxDelegate = delegate(string message, Color color, CheckBox notDisplay)
            {
                if (notDisplay != null && notDisplay.Checked) return;
                try
                {
                    ChatLogTextBox.AppendText(message);
                    ChatLogTextBox.AppendText(Environment.NewLine);
                    //ChatLogTextBox.ScrollToCaret();

                }
                catch (Exception ex)
                {
                    logTextBox.AppendText(message);
                    logTextBox.AppendText(ex.ToString());
                }
            };

            string software = String.Format("{0}  アリーナクライアント バージョン: {1}", ApplicationConstants.APP_NAME, ApplicationConstants.VERSION);
            AppendToChatTextBoxDelegate(software, Color.DarkGreen, null);
            AppendToChatTextBoxDelegate("プロトコル: " + Protocol1Constants.PROTOCOL_NUMBER, Color.DarkGreen, null);
            ThreadPool.QueueUserWorkItem(new WaitCallback(PendingLogPollingLoop));
        }
Ejemplo n.º 12
0
 public GetUserData(IControllerIdentificationService controllerIdentificationService, IAsyncClient asyncClient)
     : base(controllerIdentificationService, asyncClient)
 {
 }
Ejemplo n.º 13
0
 protected Base(IControllerIdentificationService controllerIdentificationService, IAsyncClient asyncClient)
 {
     _controllerAddress = controllerIdentificationService.GetControllerAddress().GetAwaiter().GetResult();
     _asyncClient       = asyncClient;
 }
Ejemplo n.º 14
0
    public void AcceptCallback(IAsyncResult ar)
    {
        Socket listener = (Socket)ar.AsyncState;
        Socket handler  = listener.EndAccept(ar);
        // 받는 방식의 변화 재접속...
        int id = 0;

        for (int i = 0; i < 4; ++i)
        {
            if (false == connected[i])
            {
                id = i;
                break;
            }
        }
        if (client_sock.Count >= NetworkController.MAX_CONNECT)
        {
            handler.Disconnect(false);
        }
        client_sock.Add(handler);

        if (false == isgamescene)
        {
            CC.connected(id);
        }
        else
        {
            GS.reconnected(id);
        }

        NC.net_send_signal(NetworkController.SC_CONNECT, handler);
        SC_CONNECT_PACKET packet = new SC_CONNECT_PACKET();

        packet.id = (char)id;
        switch (id)
        {
        case 0:
            packet.color = 'b';
            break;

        case 1:
            packet.color = 'y';
            break;

        case 2:
            packet.color = 'r';
            break;

        case 3:
            packet.color = 'g';
            break;

        default:
            //error
            break;
        }
        Debug.Log("Player Color : " + packet.color);
        NC.net_send(packet, handler, NetworkController.SC_CONNECT);

        connected[id] = true;

        IAsyncClient iaclient = new IAsyncClient();

        iaclient.s        = handler;
        iaclient.id       = id;
        iaclient.recvbyte = 0;
        clients.Add(iaclient);
        handler.BeginReceive(iaclient.recvbuf, 0, NetworkController.MAXBUFFERSIZE, 0, new AsyncCallback(DataReceive), iaclient);
        sck.BeginAccept(new AsyncCallback(AcceptCallback), listener);


        s_arr[id] = handler;//5.15 홍승준 추가
    }
Ejemplo n.º 15
0
    //5.15 끝

    //받은 데이터 체크 꼭 할것!!!!
    public void DataReceive(IAsyncResult ar)
    {
        IAsyncClient obj     = (IAsyncClient)ar.AsyncState;
        Socket       handler = obj.s;

        int bytesRead = handler.EndReceive(ar);

        obj.recvbyte += bytesRead;

        //길이 맞는지 확인해보고
        if (obj.recvbyte > 0 || bytesRead > 0)
        {
            Debug.Log("DataRecived");
            if (true == obj.signalread)
            {
                //5.14 홍승준 수정
                obj.recv_signal = obj.recvbuf[0];
                Buffer.BlockCopy(obj.recvbuf, 1, obj.recvbuf, 0, obj.recvbyte - 1);

                switch (obj.recv_signal)
                {
                case NetworkController.CS_REQCHR:
                    //캐릭터 정보 요청 신호 일 때
                    Debug.Log("Requset signal");
                    SC_CHARACTERINFOSET_PACKET chset = new SC_CHARACTERINFOSET_PACKET();
                    chset.characterinfo = new SC_CHARACTERINFO_PACKET[4];

                    int i = 0;
                    for (i = 0; i < 4; i++)
                    {
                        if (connected[i])
                        {
                            chset.characterinfo[i]    = GS.PC[i].CharacterInfo();
                            chset.characterinfo[i].id = (byte)i;
                        }
                        else
                        {
                            chset.characterinfo[i].id = 125;
                        }
                    }

                    NC.net_send_signal(NetworkController.SC_CHARACTERINFOSET, obj.s);
                    NC.net_send(chset, obj.s, NetworkController.SC_CHARACTERINFOSET);

                    Debug.Log("Ch_info_set_packet : " + NC.ObjToByte(chset).Length);
                    //다시 시그널 리시브 하도록 초기화
                    obj.recvbyte  -= 1;
                    obj.signalread = true;

                    break;

                default:
                    obj.recvbyte  -= 1;
                    obj.signalread = false;
                    break;
                }
            }
            //5.14 홍승준 수정 끝
            if (false == obj.signalread)
            {
                if (obj.recv_signal == NetworkController.CS_DISCONNECT)
                {
                    client_sock.Remove(obj.s);
                    obj.s.Disconnect(false);

                    if (false == isgamescene)
                    {
                        CC.disconnected(obj.id);
                    }
                    else
                    {
                        GS.disconnected(obj.id);
                    }
                    return;
                }

                else if (obj.recv_signal == NetworkController.CS_CONNECT && obj.recvbyte >= 116)
                {
                    Buffer.BlockCopy(obj.recvbuf, 0, obj.cbuf, 0, 116);
                    object recvobj = NC.ByteToObj(obj.cbuf);
                    Buffer.BlockCopy(obj.recvbuf, 116, obj.recvbuf, 0, obj.recvbyte - 116);
                    obj.recvbyte -= 116;
                    CS_CONNECT_PACKET res = (CS_CONNECT_PACKET)recvobj;

                    CC.nickname[res.id] = res.nickname;
                    obj.recv_signal     = NetworkController.S_NULL;
                    obj.signalread      = true;
                }

                else if (obj.recv_signal == NetworkController.CS_MOVE && obj.recvbyte >= 89)
                {
                    Buffer.BlockCopy(obj.recvbuf, 0, obj.cbuf, 0, 89);
                    object recvobj = NC.ByteToObj(obj.cbuf);
                    Buffer.BlockCopy(obj.recvbuf, 89, obj.recvbuf, 0, obj.recvbyte - 89);
                    obj.recvbyte -= 89;
                    CS_MOVE_PACKET res = (CS_MOVE_PACKET)recvobj;

                    if (false == isgamescene)
                    {
                        CC.move(res.x, res.y, res.id);
                    }
                    else
                    {
                        GS.move(res.x, res.y, res.id);
                    }
                    obj.recv_signal = NetworkController.S_NULL;
                    obj.signalread  = true;
                }
                else if (obj.recv_signal == NetworkController.CS_BTN && obj.recvbyte >= 89)
                {
                    Buffer.BlockCopy(obj.recvbuf, 0, obj.cbuf, 0, 89);
                    object recvobj = NC.ByteToObj(obj.cbuf);
                    Buffer.BlockCopy(obj.recvbuf, 89, obj.recvbuf, 0, obj.recvbyte - 89);
                    obj.recvbyte -= 89;
                    CS_BUTTON_PACKET res = (CS_BUTTON_PACKET)recvobj;

                    if (false == isgamescene)
                    {
                        CC.click(res.id, res.btn_number);
                    }
                    else
                    {
                        GS.click(res.id, res.btn_number);
                    }
                    obj.recv_signal = NetworkController.S_NULL;
                    obj.signalread  = true;
                }//5.15 홍승준 추가//5.18 홍승준 수정
                else if (obj.recv_signal == NetworkController.CS_SKILL && obj.recvbyte >= 104)
                {
                    Buffer.BlockCopy(obj.recvbuf, 0, obj.cbuf, 0, 104);
                    object recvobj = NC.ByteToObj(obj.cbuf);
                    Buffer.BlockCopy(obj.recvbuf, 104, obj.recvbuf, 0, obj.recvbyte - 104);
                    obj.recvbyte -= 104;

                    CS_SKILLSET_PACKET sc = (CS_SKILLSET_PACKET)recvobj;
                    sm.MakeCharacter(0, sc.id, sc);
                    obj.recv_signal = NetworkController.S_NULL;
                    obj.signalread  = true;

                    /*
                     * Debug.Log("id : "+ Convert.ToString(sc.sk_id));
                     * Debug.Log(" 1 : "+(short)sc.sk_id[0]);
                     * Debug.Log(" 2 : " + (short)sc.sk_id[1]);
                     * Debug.Log(" 3 : " + (short)sc.sk_id[2]);
                     * Debug.Log(" 4 : " + (short)sc.sk_id[3]);*/
                }//여기까지
                else if (obj.recv_signal == NetworkController.CS_UPGRADE && obj.recvbyte >= 85)
                {
                    Debug.Log("UPGRADE RECEIVE");
                    Buffer.BlockCopy(obj.recvbuf, 0, obj.cbuf, 0, 85);
                    object recvobj = NC.ByteToObj(obj.cbuf);
                    Buffer.BlockCopy(obj.recvbuf, 85, obj.recvbuf, 0, obj.recvbyte - 85);
                    obj.recvbyte -= 85;

                    Ms.Upgrade_reciev(recvobj);
                    obj.recv_signal = NetworkController.S_NULL;
                    obj.signalread  = true;
                }
            }
        }


        handler.BeginReceive(obj.recvbuf, obj.recvbyte, NetworkController.MAXBUFFERSIZE - obj.recvbyte, 0, new AsyncCallback(DataReceive), obj);
    }
Ejemplo n.º 16
0
        static void StartClient(IAsyncClient client)
        {
            try
            {
                client.Connect("127.0.0.1", 30000);

                while (true)
                {
                    Console.Write(">");
                    string cmd = Console.ReadLine();
                    if (cmd == "") break;

                    // Convert command to message
                    string msg = "CHAT " + cmd;

                    client.Send(msg);
                }

                client.Disconnect();
            }
            catch (Exception)
            {
                Console.ReadLine();
            }
        }