チャットアプリケーションJava/Socket(TCP)を開発しましたが、ローカルネットワーク上で完全に機能しますが、ルーターの背後に置くと機能しません...ルーターの開いているポートを http:/でテスト済みです。 /www.yougetsignal.com/tools/open-ports/ 結果は次のとおりです
80 (HTTP)is open
21 (FTP)is open
22 (SSH)22 is open
23 (TELNET)is open
25 (SMTP)25 is open
.
.
.
このポートのリストでサーバーを起動しました(java -jar server.jar 23
):
int port=Integer.parseInt(args[0]);
ServerSocket serverSocket = null;
serverSocket = new ServerSocket(port);
System.out.println("server started at " + port);
Socket clientSocket = null ;
// repeatedly wait for connections, and process
while (true) {
try {
clientSocket = serverSocket.accept();
} catch (IOException ex) {
System.out.Println("error");
}
System.err.println("new client connected!");
in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())),true);
String s;
while ((s = in.readLine()) != null) {
out.println("from server: "+s);
}
// colse all
out.close();
in.close();
clientSocket.close();
次に、単純なクライアントを使用して、接続しようとしました=>受信したものは何でも...
問題はどこにありますか?では、Skype、Msn、その他のチャットアプリケーションはどのように機能しますか?それを行うための解決策はありますか?
PS:私のコードをすぐに理解できるように、実際のサーバーを表す単純なコード(エコーサーバー)を配置しました:)。
よろしく 。