質問: new Socket(ADDRESS, PORT); System.out.println("接続されました。 address =(" + socket.getRemoteSocketAddress() + ")"); } catch (IOException ioe) { System.out.println("接続できませんでした。"); } } } ``` コマンドプロンプトで「ipconfig」というコマンドを実行したときに表示される、 IPv4アドレスやIPv6アドレスを試してみましたが、 1つのPCでサーバー側とクライアント側を立ち上げたときは接続できました。 しかし、PCを分けて実行すると接続ができません。 もしかしたら、IPアドレス以前に、コード自体が間違っているかもしれません。 どこのサイトを見ても、java.net.Socketに関しての記事は同じようなことしか書いておらず、(見落としているだけかもしれませんが、、、) 独学では無理と判断したため、質問させてもらいました。 皆様のお力をお貸しください。ご教授お願いいたします。
回答: (1) サーバ側のIPアドレスを調べましょう。 環境はWindowsマシンのようですので、ipconfigコマンドを使って、 サーバ> ipconfig として、IPアドレスを調べます。 かりに 192.168.1.3だったとします。 (2) クライアント側からサーバ側へpingコマンドを実行しましょう。 クライアント>ping 192.168.1.3 これで応答が返ってくるようであれば、疎通OKです。 要求がタイムアウトしました、のような結果だと、環境に問題がありますので、 あなたのプログラムでも、そもそも通信はできないかと。。 (3) あなたのサーバ側プログラムを、サーバマシンで起動しましょう。 (4) あなたのクライアントマシンから、以下を実行してみましょう。 (まだあなたのクライアント側プログラムを使わずに。。。) クライアント>telnet 192.168.1.3 8080 これで、サーバ側で、"起動しました"の文字列が出れば、 サーバ側のプログラムはOK. (5) いよいよ、あなたのクライアント側プログラムからサーバに接続してみましょう。 このとき、javaコード上でのIPアドレスの書き方は、単なる文字列でよいので、 private static final String ADDRESS = "192.168.1.3";