2

私は現在、libgdx グラフィック API とすべてのサーバー クライアント ネットワーク用の kryonet API を使用して、Android マルチプレイヤー ゲーム (1 対 1 の戦闘) を開発しています。ご存じないかもしれませんが、libgdx はゲーム開発用のオープン ソース Java API です。Kryonet は、PC、Android、および Linux のゲームに適した独立したネットワーク API です。これまでのところ、すべてが順調に進んでいます...サーバー、プレーヤーとして2つのクライアントを作成しました。

pc でサーバーとクライアントを実行してみました。その作業。次に、PCでサーバーを実行し、Androidフォンでプレーヤークライアントを実行してみました。その作業。

しかし... Androidフォンをサーバーとして使用すると問題が発生しました。クライアント プログラムが Android サーバーを検出できません。whatsmyip.com から電話のIPを使用したことも確認しました。しかし、私の Android サーバーはまだ見えません。インターネット権限でマニフェストを正しく設定したことを確認しました。

その mobild ip のために、Android携帯をサーバーとして実行することさえ可能ですか? 中央サーバーが不要になるように、これを機能させる必要があります。プレーヤーは、1 人のプレーヤーがサーバーを起動し、もう 1 つのプレーヤーがサーバー プレーヤーに参加するだけの p2p 方式で簡単にプレイできます。

4

1 に答える 1

1

同様の問題がありました。モバイル ネットワーク接続を使用しようとしていると思います。問題は、モバイルが一連のファイアウォールの背後にある可能性があることです。問題を克服するために使用できるさまざまなソリューションを見てきました。

The issue is that the ip address you see external as your phones IP address is not a "real" address. This is a gateway that many mobile devices are going out through. The gateway uses a technique called NAT tables to decide what traffic that comes to this IP address belongs to your device. Any traffic that the gateway receives that it does not expect it generally ignores. This article gives a good overview of the issues.

There are ways around this have a look at different hole punching methods (STUN...).

これを回避するためにいくつかの方法を試しましたが、最終的にはリレー サーバーの使用を検討する必要がありました。私は、アプリを稼働させるのに十分な無料利用枠を提供するアマゾン ウェブ サービス (AWS) を使用しました。始めるのは良いことです。私はそれをメッセージの中継に使用しています。

お役に立てれば。

于 2013-11-25T18:40:09.970 に答える