我有这个小测试套接字连接类:-
import java.net.Socket;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.IOException;
public class TestTelnet {
public static void main(String args[]) throws Exception {
Telnet telnet = new Telnet();
Socket socket = null ;
socket = new Socket("localhost", 23);
socket.setKeepAlive(true);
BufferedReader r = new BufferedReader(new InputStreamReader(socket.getInputStream()));
BufferedWriter w = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));
System.out.println(r.readLine());
socket.close();
}
}
当我使用另一个端口(例如 25 用于 SMTP)并且 r.readLine 的 println 工作出色时,它工作得非常好。我还可以通过命令提示符(telnet localhost 23)连接到端口 23,然后返回以下内容:-
Ubuntu 8.10 我的笔记本电脑登录:
但是当我尝试使用我的 java 类连接到端口 23 时,它只是挂在 readLine println 上。有人知道为什么吗?