質問させていただきます。
コードは下記に記します。
私が実現したいことは、
離れたPC間での通信方法です。
Aというサーバーを立ち上げるPCと、
BというクライアントになるPCがあるとします。
BがAに接続するためのIPアドレス(ホスト名?)は、どのように記載すればよろしいですか?
また、その調べかたを教えてください。。
サーバー側
java
1/* 2* サーバー側 3*/ 4import java.net.Socket; 5import java.net.ServerSocket; 6 7import java.io.IOException; 8 9public class Sample { 10 11 private static final int PORT = 8080; 12 13 public static void main(String[] args) { 14 ServerSocket serverSocket = null; 15 Socket socket = null; 16 try { 17 serverSocket = new ServerSocket(PORT); 18 19 System.out.println("起動しました。 port =(" + 20 serverSocket.getLocalPort() + ")"); 21 System.out.println("接続を待機します。"); 22 socket = serverSocket.accept(); 23 24 System.out.println("接続されました。 address =(" + 25 socket.getRemoteSocketAddress() + ")"); 26 } catch(IOException ioe) {System.out.println("起動/接続できませんでした。");} 27 } 28}
クライアント側
java
1/* 2* クライアント側 3*/ 4import java.net.Socket; 5 6import java.io.IOException; 7 8public class Sample2 { 9 10 private static final int PORT = 8080; 11 private static final String ADDRESS = "IPアドレスを記載する"; // ここがわかりません。 12 13 public static void main(String[] args) { 14 Socket socket = null; 15 16 try { 17 socket = new Socket(ADDRESS, PORT); 18 System.out.println("接続されました。 address =(" + 19 socket.getRemoteSocketAddress() + ")"); 20 21 } catch (IOException ioe) { 22 System.out.println("接続できませんでした。"); 23 } 24 } 25}
コマンドプロンプトで「ipconfig」というコマンドを実行したときに表示される、
IPv4アドレスやIPv6アドレスを試してみましたが、
1つのPCでサーバー側とクライアント側を立ち上げたときは接続できました。
しかし、PCを分けて実行すると接続ができません。
もしかしたら、IPアドレス以前に、コード自体が間違っているかもしれません。
どこのサイトを見ても、java.net.Socketに関しての記事は同じようなことしか書いておらず、(見落としているだけかもしれませんが、、、)
独学では無理と判断したため、質問させてもらいました。
皆様のお力をお貸しください。ご教授お願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/01/14 11:21