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); }
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; } }
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; } }
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); } }