前提・実現したいこと
JavaのSocketとServerSocketを用いてPC2台間でローカルエリアネットワークを構築しようとしております。PC間はLANケーブルで直接接続しており、サーバ側を"192.168.0.1"、クライアント側を"192.168.0.2"の固定IPアドレスとしています。両PC間にハブなどはありません。
発生している問題・エラーメッセージ
クライアントからサーバ側にアクセスできません。
正確にはサーバ側でServerSocket.accept()でプログラムを待機させているのですが、接続に成功しない状態です。
該当のソースコード
Java
1//クライアント側プログラムの一部 2 try { 3 Socket clientSocket = new Socket("192.168.0.2",5000); 4 System.out.println("Succeed to connect Server!!"); 5 clientSocket.close(); 6 } catch (UnknownHostException e) { 7 System.out.println("UnknownHostException:"+e); 8 } catch (IOException e) { 9 System.out.println("IOException:"+e); 10 } catch (Exception e) { 11 System.out.println("Exception:"+e); 12 } 13 14//サーバ側プログラムの一部 15 try { 16 ServerSocket serverSocket = new ServerSocket(5000); 17 Socket serversideSocket = serverSocket.accept(); 18 System.out.println("Succeed to open ServerSocket!!"); 19 serversideSocket.close(); 20 serverSocket.close(); 21 } catch (IOException e) { 22 System.out.println("IOException:"+e); 23 } catch (SecurityException e) { 24 System.out.println("SecurityException:"+e); 25 } catch (IllegalArgumentException e) { 26 System.out.println("IllegalArgumentException:"+e); 27 }
試したこと
以下の試行を行いました。
①PC間の相互PINGの確認=>相互接続確認
②インターネットに接続し、外部yahoo webサーバ(IPアドレス 182.22.25.252 ポート番号 80)へのクライアントプログラムでの接続=>接続確認
③PC1台でサーバ側とクライアント側のプログラムを立ち上げローカル・ループバック・アドレス(IPアドレス 127.0.0.1 ポート番号 5000)を設定して実施=>接続確認
④telnetコマンドによるクライアント側からサーバ側への確認=>「接続に失敗しました」と表示
⑤サーバー側PCのWindowsファイアーウォールの設定で該当ポートを開けるよう設定=>接続できず
②よりクライアントプログラムに問題がなく、③よりサーバプログラムも正常に動いているものと思われます。そこでファイアーウォールの問題かと思い、④、⑤よりポート開放を行ったのですが接続は確立できませんでした。
打つ手がなく困っている状態です。このような場合にどのように対処すればよいかご存じの方がおられましたらご教授お願いいたします。
補足情報(FW/ツールのバージョンなど)
OSは2台ともWindows 10 pro 64bitで、開発環境はサーバ側がEclipse Platform Version: 2018-09 (4.9) 、クライアント側がEclipse IDE for Enterprise Java Developers Version:2019-12(4.14.0)です。

回答1件
あなたの回答
tips
プレビュー