コード例 #1
0
 private void Awake()
 {
     gameTypeIndex  = -1;
     serverRunning  = false;
     stopServer     = false;
     udpServerState = UDPServerState.DISCONNECTED;
 }
コード例 #2
0
        //服务器监听函数
        private void OnListeningClients()
        {
            udpServer = new UdpClient(serverSocketPort);
            udpServer.Client.ReceiveTimeout = 300;
            while (!stopServer)
            {
                try
                {
                    string   receivedMsg = string.Empty;
                    string[] pack;
                    udpServerState = UDPServerState.CONNECTED;
                    IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);
                    byte[]     data  = udpServer.Receive(ref anyIP);
                    receivedMsg = Encoding.ASCII.GetString(data);
                    pack        = receivedMsg.Split(StaticManager.DELIMITER);

                    //switch (pack[0])
                    //{
                    //    //处理收到的不同数据包

                    //    default:
                    //        break;
                    //}
                    if (pack[0] == StaticManager.ping_packName)
                    {
                        OnReceivePing(pack, anyIP);
                    }
                    else
                    {
                        if (pack[0] == StaticManager.joinGame_packName)
                        {
                            OnReceiveJoinGame(pack, anyIP);
                        }
                        else
                        {
                            if (pack[0] == StaticManager.disconnect_packName)
                            {
                                OnReceiveDisconnect(pack, anyIP);
                            }
                        }
                    }
                }
                catch (Exception err)
                {
                    Debug.Log("监听函数ERROR:" + err.ToString());
                }
            }
        }
コード例 #3
0
        //断开服务器
        private void CloseServer()
        {
            udpServerState = UDPServerState.DISCONNECTED;

            stopServer = true;

            if (udpServer != null)
            {
                udpServer.Close();
                udpServer = null;
            }

            if (tListenner != null)
            {
                tListenner.Abort();
            }
        }
コード例 #4
0
        /**
         *  断开服务器
         *  DISCONNECTS SERVER
         */
        public void CloseServer()
        {
            //更改服务器状态为断开
            udpServerState = UDPServerState.DISCONNECTED;
            //标记服务器是否停止
            stopServer = true;

            //停止udp服务区
            if (udpServer != null)
            {
                udpServer.Close();
                udpServer = null;
            }
            //停止服务器监听线程
            if (tListenner != null)
            {
                tListenner.Abort();
            }
        }
コード例 #5
0
 public void Awake()
 {
     udpServerState = UDPServerState.DISCONNECTED;
 }
コード例 #6
0
        /// <summary>
        /// 引发监听客户端事件
        /// Raises the listening clients event.
        /// </summary>
        public void OnListeningClients()
        {
            Debug.Log("服务器监听函数");

            udpServer = new UdpClient(serverSocketPort);

            udpServer.Client.ReceiveTimeout = 300; // msec 超时设置

            //服务器未停止
            while (stopServer == false)
            {
                try
                {
                    udpServerState = UDPServerState.CONNECTED;

                    IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);

                    byte[] data = udpServer.Receive(ref anyIP);

                    string text = Encoding.ASCII.GetString(data);

                    receivedMsg = text;

                    pack = receivedMsg.Split(Delimiter);

                    Debug.Log("收到数据包");
                    for (int i = 0; i < pack.Length; i++)
                    {
                        Debug.Log("pack[" + i + "]--: " + pack[i]);
                    }

                    switch (pack[0])
                    {
                    //处理收到的不同数据包
                    case "PING":
                        OnReceivePing(pack, anyIP);    //processes the received package
                        break;

                    case "JOIN_GAME":
                        OnReceiveJoinGame(pack, anyIP);    //propocessa o comando recebido da aplicação do professor
                        break;

                    case "UPDATE_BOARD":
                        OnReceiveUpdateBoard(pack, anyIP);    //propocessa o comando recebido da aplicação do professor
                        break;

                    case "GAME_OVER":
                        OnReceiveGameOver(pack, anyIP);    //propocessa o comando recebido da aplicação do professor
                        break;

                    case "disconnect":
                        OnReceiveDisconnect(pack, anyIP);    //processes the received package
                        break;
                    }//END_SWTCH
                }//END_TRY
                catch (Exception err)
                {
                    print("监听ERROR:" + err.ToString());
                }
            }//END_WHILE
        }
コード例 #7
0
ファイル: UDPServer.cs プロジェクト: ihsanullah07/Feskot
        //***************************   recieveing data sent to server   ***************************

        /// <summary>
        /// Raises the listening clients event.
        /// </summary>
        ///
        //recieveing clients data
        public void  OnListeningClients()
        {
            udpServer = new UdpClient(serverSocketPort);

            udpServer.Client.ReceiveTimeout = 300;             // msec


            while (stopServer == false)
            {
                try {
                    udpServerState = UDPServerState.CONNECTED;

                    IPEndPoint anyIP = new IPEndPoint(IPAddress.Any, 0);

                    byte[] data = udpServer.Receive(ref anyIP);

                    string text = Encoding.ASCII.GetString(data);

                    receivedMsg = text;

                    pack = receivedMsg.Split(Delimiter);


                    switch (pack[0])
                    {
                    case "GAMEREADY":
                        OnGameReady(pack, anyIP);
                        break;

                    case "GAMESTART":
                        OnGameStart(pack, anyIP);
                        break;

                    case "SELECTASUIT":
                        OnSuitSelected(pack, anyIP);
                        break;

                    case "CHAL":
                        OnChal(pack, anyIP);
                        break;

                    case "THROW":
                        OnThrow(pack, anyIP);
                        break;

                    case "PING":
                        OnReceivePing(pack, anyIP);                       //processes the received package
                        break;

                    case "JOIN":
                        OnReceiveJoin(pack, anyIP);                       //processes the received package
                        break;

                    case "MOVE":
                        OnReceiveMove(pack, anyIP);                       //processes the received package
                        break;

                    case "disconnect":
                        OnReceiveDisconnect(pack, anyIP); //processes the received package
                        break;
                    }                                     //END_SWTCH
                }                                         //END_TRY
                catch (Exception err)
                {
                    //print(err.ToString());
                }
            }            //END_WHILE
        }