2011-09-04 15 views
0

私はjavaで書いた簡単なチャットプログラムに質問がありました。 プログラムはTCPを使用して、単純なメッセージ文字列をServer/Clientから前後に送信します。ネットワーク上のすべてのコンピュータで動作します。しかし、私はそれを彼のコンピュータから働いているかどうかを見るために私の友人に送ったとき、それはしませんでした。だから私の質問です:私はいくつかの特定のコードを追加する必要があります私のネットワークの外から他のcompsからのメッセージを受信することができますか?またはこれを防ぐファイアウォールの一種ですか?Javaでの簡単なネットワークチャット

+0

サーバーはどこですか?あなたのネットワークの外か内部か? – Whiler

+0

私のネットワーク –

答えて

1

おそらくファイアウォールまたはルーター。

ファイアウォール:ポートが開かれていません。

ルータ:アプリケーションをホストするマシンにメッセージが転送されません。

それとも、上ではないコンピュータ用のコードに特別な何かを指定しない場合、アプリケーションが(あなたの内部IPに転送する必要があります)、インターネット

+0

あなたのクイック応答ありがとう:ありません、サーバーアプリケーションを実行するコンピュータはルータの後ろにありませんが、はい、クライアントプログラム(私の友人)からのメッセージを受信するために使用されるIPは、このコンピュータの内部IPです。だから、私はここから何をするのですか? –

+0

あまりにも簡単... ​​ 彼とチャットできるようにしたい場合は、外部IPを使用してポートをそれぞれのマシンにルーティングすることができます。 しかし、これはマシン間ではもう動作しません... どこでも動作する他のソリューション..各クライアントでTCPリスナーを開始します。クライアントは、リスニングしているポートをサーバーに送信します。**異なるポート**を別のマシン...またはあなたはサーバーからメッセージを取り出し、このユーザー/マシンのものかどうかをチェックし、ユーザーにメッセージをサーバーにプッシュします。 – Whiler

0

からIPを内部IPを使用していません内部ネットワークでは、それらを別々に処理しません。接続自体を別々に処理することはありません。私はあなたの(または彼の)ルータをチェックし、あなたが使用しているポートを開きます。

関連する問題