私は、接続を確立してそれが機能するかどうかを確認するために、(単純な、初心者向けの)サーバークライアントをプログラムしようとしています。そして、そうです。私が自分の4つの壁/ネットワークの中にいる限り。ルーターのIPを経由しようとすると、クライアントは非常に細かいエラーメッセージを生成します。通常の疑わしいものはすべて排除されました。ルーターポート転送がオンで、ファイアウォールが干渉せず(オフにしても機能しません)、canyouseeme.orgは、選択したサーバーへの接続を確立できると言っています。サーバーの実行時のポート。
これがサーバーのソースコードです。少し電話をかけるだけでコマンドラインからアクセスできることがわかったからです。接続を確立しようとすると、Could not open connection to the host, on port 49163:Connection failed
サーバ:
import java.net.*;
import java.io.*;
public class ChatServer {
public static void main(String[] args) throws IOException {
ServerSocket server = null;
try {
System.setProperty("java.net.preferIPv4Stack" , "true");
server = new ServerSocket(49163);
} catch (IOException e) {
System.err.println("Could not listen on port: 49163.");
System.exit(1);
}
Socket client = null;
try {
client = server.accept();
} catch (IOException e) {
System.err.println("Accept failed.");
System.exit(1);
}
PrintWriter out = new PrintWriter(client.getOutputStream(), true);
BufferedReader in = new BufferedReader(newInputStreamReader(client.getInputStream()));
String inputLine;
String outputLine;
out.println("Connection established");
while ((inputLine = in.readLine()) != null) {
if (inputLine.equals("exit")) {
break;
}
outputLine = inputLine;
out.println(outputLine);
}
out.close();
in.close();
client.close();
server.close();
System.out.println("Server offline");
}
}
そうそう、preferIP4vStackはStackoverflowで拾ったものでしたが、うまくいかないようです。
なんらかの理由で、クライアントのコードを含めることができず、フォーマットに関するメッセージが表示され続け、理解できません。しかし、私が見ているように、コマンドライン経由で接続することさえできないので(「実際の」IPに接続しようとすると)、クライアントが関与する必要はありません。しかし、とにかくエラーを見たいあなたのために:
java.net.ConnectException: Connection refused: connect at java.net.PlainSocketImpl.socketConnect(Native Method) at java.net.PlainSocketImpl.doConnect(Unknown Source) at java.net.PlainSocketImpl.connectToAddress(Unknown Source) at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.SocksSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.<init>(Unknown Source) at java.net.Socket.<init>(Unknown Source) at ChatClient.main(ChatClient.java:12)