我正在尝试使用java中的套接字创建一个简单的telnet客户端。这是我写的:
public class NetUtil {
public static void main(String[] args) throws IOException {
Socket sock = new Socket("localhost", 23);
InputStream in = sock.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String output;
while((output=br.readLine())!=null){
System.out.println(output);
}
}
}
问题是当尝试从缓冲读取器读取时输出会冻结。我已经检查了与sock.isConnected()的连接 - 它已连接。我的telnet服务器启动并运行 - 我已经从控制台检查 - 我可以连接到我的工作站,但是当我尝试使用套接字时,它会失败。
答案 0 :(得分:1)
我认为你不应该在这里重新发明轮子。尝试使用Apache Commons Net telnet客户端。
答案 1 :(得分:0)
您确定,服务器发送了什么吗?它是否也发送换行符?您的计划通过调用readLine
的{{1}}来预期。