【发布时间】:2012-11-19 15:07:37
【问题描述】:
我正在尝试使用 Java 中的 Sockets 制作一个简单的 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 服务器已启动并正在运行 - 我已从控制台检查过 - 我可以连接到我的工作站,但是当我尝试使用套接字时,它失败了。
【问题讨论】:
-
我认为您应该在尝试从套接字读取之前进行 telnet 握手。 Telnet 并不像最初看起来那样简单。编辑:不要介意以前的评论
-
我不明白 - 你的意思是在读取之前尝试将用户名/密码写入套接字?
-
您需要提供有关客户端的服务器信息(编码、回显状态等)如果您希望自己实现,请研究 RFC (en.wikipedia.org/wiki/Telnet)
-
好的,谢谢您的建议。至少我知道从哪里开始。