コンピューターのクライアントがコンピューターに接続して通信できるように、コンピューターからサーバーを作成しようとしています。サーバーをポート31350で作成しましたが、クライアントがルーターのIPアドレスを介して接続しようとしています。ただし、ソケット作成のパラメーターに「localhost」またはコンピューターの名前が含まれている場合にのみ、LANを介して機能します。IPアドレスを使用して、クライアントとサーバーを異なるネットワークで実行している場合ではありません。これがコードです。
これが私のコンピューターが実行しているサーバーです。
public static void main (String[] args) throws IOException
{
ServerSocket server = new ServerSocket(31350);
Socket client1 = server.accept();
}
これが私の友人が彼のコンピューターで実行しているクライアントコードです
public static void main(String[] args) throws IOException, UnknownHostException
{
Socket socket;
// #'s are what I got from whatismyip.org on the server computer)
byte[] serverb = new byte[] {(byte)##, (byte)##, (byte)###, (byte)###};
socket = new Socket(InetAddress.getByAddress(serverb),31350);
}
これは私がクライアントを実行するときにそれが言うことです
スレッド"main"の例外java.net.ConnectException:接続がタイムアウトしました:java.net.DualStackPlainSocketImpl.connect0(ネイティブメソッド)at java.net.DualStackPlainSocketImpl.socketConnect(DualStackPlainSocketImpl.java:69)atjava.net.AbstractPlainSocketImpl .doConnect(AbstractPlainSocketImpl.java:339)at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:200)at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:182)at java.net.PlainSocketImpl.connect( java:157)at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:391)at java.net.Socket.connect(Socket.java:579)at java.net.Socket.connect(Socket.java:528)at java.net.Socket。(Socket.java:425)at java.net.Socket。(Socket.java:241)at ClientTest.main(ClientTest.java:22)//22は行socket= new Socket(InetAddress.getByAddress(serverb)、31350);です。
ファイアウォールが無効になっています。ルーターのポート31350は、cmdでipconfigを使用して取得したコンピューターのローカルIPアドレスに転送されます。しかし、それでも機能しません。クライアントコンピューターからソケットを作成しようとすると、IOExceptionが発生します。サーバーコンピュータでは何も起こりません。どうしたの?