Example #1
0
    /// <summary>
    /// starts periodically advertising the hosted game over local network
    /// </summary>
    /// <param name="t_gameName">the label of the hosted game</param>
    public void StartAdvertiseLAN(string t_gameName)
    {
        byte error;
        NetUtilGameAdvert advert = new NetUtilGameAdvert();

        advert.name        = t_gameName;
        advert.playerCount = m_connections.Count;
        advert.playerLimit = 16;
        byte[] message = ConstructMessage(NetUtilMessageType.BROADCAST, advert);
        NetworkTransport.StartBroadcastDiscovery(m_host, m_clientSocket, m_gameId, m_majorVersion, m_minorVersion, message, message.Length, 300, out error);
    }
Example #2
0
    /// <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;
    }