/// <summary> /// handles broadcast messages /// </summary> private void HandleBroadcast() { string ip; int port; byte error; byte[] buffer = new byte[1024]; int size; NetworkTransport.GetBroadcastConnectionInfo(m_hostId, out ip, out port, out error); NetworkTransport.GetBroadcastConnectionMessage(m_hostId, buffer, 1024, out size, out error); NetUtilGameAdvert advert = ConstructType <NetUtilGameAdvert>(buffer, 1, size - 1); NetUtilGameInfo gameInfo = new NetUtilGameInfo(); gameInfo.name = advert.name; gameInfo.playerCount = advert.playerCount; gameInfo.playerLimit = advert.playerLimit; gameInfo.ip = ip; gameInfo.port = port; gameInfo.time = Time.time; m_remoteGames[gameInfo.ip + ":" + port] = gameInfo; }
/// <summary> /// returns a collection of detected remote games capable of being joined /// </summary> public NetUtilGameInfo[] GetGameList() { NetUtilGameInfo[] output = new NetUtilGameInfo[m_remoteGames.Count]; m_remoteGames.Values.CopyTo(output, 0); return(output); }