The TicTacToe example offers a Bonjour service (the listener) and discovers a service (the browser), but the listener does not give a 'query response' when the browser does discovery. This can be observed using WireShark. To demonstrate, start the listener end and offer a game without the 2nd copy (the browser end) running. Run the browser end, which does discovery (a query) when it starts. The listener does not give a 'query response', and does not get put in the browser's list of available games.
If both ends of the peer-to-peer game are running when the game is offered, then the game does appear in the browser's list of games.
What setting is missing in the TicTacToe example to cause the 'query response'?