Пример #1
0
        private void OnServerAcceptMsg (IAsyncResult _ar) {
            Socket servSock = (Socket) _ar.AsyncState;
            int receivedLength = servSock.EndReceive (_ar);

            byte[] receivedData = new byte[receivedLength];
            Array.Copy (mServerBuffer, receivedData, receivedLength);

            string jsString = Encoding.ASCII.GetString (receivedData);
            IBroadcastPacket mPack = JsonUtility.FromJson<IBroadcastPacket> (jsString);

            switch ((BroadCastType) mPack.packType) {
                case BroadCastType.JOIN_REQUEST_WITH_CLIENT:
                    Log ("NEW JOIN REQUEST RECEIVED BY SERVER::" + jsString);
                    JoinReqPacket joinnPack = JsonUtility.FromJson<JoinReqPacket> (jsString);
                    if (sendToServerCallback != null) {
                        Debug.Log ("inside send to server callback :: ");
                        sendToServerCallback (joinnPack);
                    }
                    break;
                default:
                    //Debug.Log("UNRECOGNIZED PACKET!!");
                    break;
            }

            //be ready for other connections
            mUDPServer.BeginReceive (mServerBuffer, 0, BUFF_SIZE, SocketFlags.None, new AsyncCallback (OnServerAcceptMsg), servSock);
        }
Пример #2
0
 private void Server_OnJoinReqReceived (IBroadcastPacket _imp) {
     switch ((BroadCastType) _imp.packType) {
         case BroadCastType.JOIN_REQUEST_WITH_CLIENT:
             {
                 Debug.Log ("successfully received joined request ");
                 JoinReqPacket _joinReq = (JoinReqPacket) _imp;
                 if (onHostFound != null) onHostFound (_joinReq);
             }
             break;
         default:
             break;
     }
 }
Пример #3
0
        private void Client_OnReceiveFromServer (IBroadcastPacket _imp) {
            switch ((BroadCastType) _imp.packType) {
                case BroadCastType.SERVER_BROADCAST:
                    {
                        RoomBroadcastPacket _smp = (RoomBroadcastPacket) _imp;
                        Debug.Log ("SERVER FOUND ON MONO: " + _smp.ip + " , " + _smp.serverName);
                        if (onRoomFound == null) {
                            Debug.Log ("no server found function added");
                        } else {
                            onRoomFound (_smp);
                        }

                    }
                    break;
                default:
                    break;
            }
        }
Пример #4
0
        private void OnClientReceive (IAsyncResult _ar) {
            try {
                Socket clientSock = (Socket) _ar.AsyncState;
                int receivedLength = clientSock.EndReceive (_ar);

                byte[] receivedData = new byte[receivedLength];
                Array.Copy (mClientBuffer, receivedData, receivedLength);
                string jsString = Encoding.UTF8.GetString (receivedData);
                //Debug.Log(jsString);

                IBroadcastPacket imp = JsonUtility.FromJson<IBroadcastPacket> (jsString);

                switch ((BroadCastType) imp.packType) {
                    case BroadCastType.SERVER_BROADCAST:
                        {
                            RoomBroadcastPacket servBroadPack = JsonUtility.FromJson<RoomBroadcastPacket> (jsString);
                            if (IsHostAdded (servBroadPack) == false) {
                                Log ("FOUND A NEW SERVER:: " + jsString);
                                //we found a new game server
                                mAllHosts.Add (servBroadPack);
                                if (sendToClientCallback != null) {
                                    sendToClientCallback (servBroadPack);
                                }

                                // IPEndPoint iep = new IPEndPoint(IPAddress.Parse(mPacket.ip), mPacket.port);
                                // byte[] data = Encoding.ASCII.GetBytes("JOIN_REQ_IM");
                                // clientSock.SendTo(data, (EndPoint)iep);
                            }
                        }
                        break;
                }

                //KEEP THE CONNECTION ALIVE FOR OTHER INCOMING MESSAGES
                mPrivateClient.BeginReceive (mClientBuffer, 0, BUFF_SIZE, SocketFlags.None, new AsyncCallback (OnClientReceive), mPrivateClient);
            } catch (Exception ex) {
                Log ("ERR: Client REceive:: " + ex.Message);
            }
        }