6

winsockets を使用して、自分のゲームを LAN でプレイできるゲームに変える方法を見つけようとしています。winsockets のドキュメントをいくつか読みましたが、クライアントが LAN 上で作成されたすべてのゲームを取得する方法がわかりません。

192.168.0.1 に接続してから 192.168.0.2 に接続するなど、LAN 上の各 IP に「接続」する必要がありますか? より良い方法はありますか?

4

4 に答える 4

3

ブロードキャストを使用して、LAN 上のサーバーをアドバタイズします。その後、クライアントはこれらのブロードキャストをリッスンしてサーバーを「検索」できます。

詳細については、こちらをご覧ください: http://tangentsoft.net/wskfaq/intermediate.html#broadcast

于 2010-07-08T23:25:18.293 に答える
2

これを行うには2つの方法があると思います。

  1. クライアントとサーバーが接続する「ロビー」を作成して、それを介してお互いを見つけられるようにします。

  2. サーバーはUDPパケットをブロードキャストします。クライアントはサーバーのリストをリッスンして更新します。

すばやく簡単な方法が必要な場合は、2番目のオプションが最適ですが、UDPパケットはクライアントごとに一度だけ使用されるため、ほとんどのUDPパケットが無駄になることを覚えておいてください。

最初のオプションは、この問題に対するより一般的で拡張性のあるソリューションです。ただし、設計と実装にはさらに時間がかかる場合があります。

于 2010-07-22T05:10:02.200 に答える
2

通常、これらのゲーム サーバーはローカル UDP ブロードキャストを使用します。これは、すべてのクライアントが受信し、リッスンしている限り処理できます。

以下は、私が見つけたいくつかのクライアントとサーバーのサンプル コードです

于 2010-07-08T23:26:55.500 に答える
0

まず、ネットワーク開発のためにwiresharkを入手することをお勧めします。どのパケットが回線を通過するかが表示されます。これを行うには多くの方法があるため、他のゲームがどのように行うかを確認できます。

UDP ブロードキャストを使用することは、それを行う 1 つの方法です。ターゲット IP の最後のバイトを 255 に変更するだけで問題ありません。

于 2010-07-08T23:50:55.390 に答える