2016-11-05 29 views
0

私はJavaを使用してTCP経由でファイルを送信する簡単なプログラムに取り組んでいます。私はコンピュータ間で接続できないという問題があります(ルータとローカルIPアドレスを使ってアプリケーションをテストしています)。Java - TCP接続

私がして、接続を開始:sendIpが169.254.5.47(第2のコンピュータである ポートは12222です

servsock = new ServerSocket(port); 
recieveSocket = servsock.accept(); 

、 :

sendSocket = new Socket(sendIp, port); 

をし、私がすることによって、次のPC上で接続を受け取るしようとしていますその受信します)

とmyIPは192.168.0.52(送信コンピュータ)

私は間違っていますか?
私はいつも同じポートを使います。そして、私はTCPViewでJavaアプリケーションがそのポートを使用しているのを見ます。 多分私は、間違ったIP、または私のファイアウォールブロックを何とか割り当てます。

敬具と感謝、 クリス

+0

彼らは同じネットワークの権利の一部ではないようですか? –

+0

あなたのアプリケーションをテストする前に、送信者とターゲットのIPが同じLANにないため、まず接続を確認してください。 Telnetはこれをテストするための便利なツールです。 –

答えて

0

これは、Windowsのネットワークである場合は、IP 169.254.5.47ホストがDHCPから有効なIPアドレスを取得していないことを意味します。標準ローカルネットワークでは、両方のアドレスが同じクラスC範囲(192.168.0。*)にある必要があります。

この物理的な問題をまずネットワークで解決し、pingを使用してテストする必要があります(各ホストはpingして応答を確認できるはずです)。

+0

あなたは正しいです。ルータのIPアドレスをチェックして接続できました。 問題は、2番目のコンピュータのJavaアプリケーションがそれとは異なるIPを返すことです。私はそれを使用します:myIp = InetAddress.getLocalHost()。getHostAddress(); 修正できますか? ありがとうございました、Chris –