【发布时间】:2014-10-19 15:28:18
【问题描述】:
我正在尝试用 Java 实现 Telnet 客户端,它只会从 telnet 服务器获取数据。
我已经找了好久,找到了很多东西,但不是我特别需要的东西——例如 apache commons 客户端示例,它似乎发送了很多命令,这让我很困惑诚实的。 因此,我认为编写自己的客户端使用套接字连接到服务器会更容易。
public class TelnetClient {
private String host;
public TelnetClient(String host) {
this.host = host;
}
public void getData(){
Socket s = new Socket();
PrintWriter s_out = null;
BufferedReader s_in = null;
try {
s.connect(new InetSocketAddress("www.google.com" , 80));
System.out.println("Connected");
//writer for socket
s_out = new PrintWriter( s.getOutputStream(), true);
//reader for socket
s_in = new BufferedReader(new InputStreamReader(s.getInputStream()));
}
//Host not found
catch (UnknownHostException e) {
System.err.println("Don't know about host : " + host);
System.exit(1);
} catch (IOException e) {
e.printStackTrace();
}
//Send message to server
String message = "GET / HTTP/1.1\r\n\r\n";
s_out.println( message );
System.out.println("Message send");
//Get response from server
String response;
try {
while ((response = s_in.readLine()) != null) {
System.out.println( response );
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
但我目前无法在服务器上实际测试这一点,所以我只使用 google.com,但我想更改它以连续侦听服务器上的新数据行。
基本上我的问题是,我是不是走错了路——我只是使用套接字访问 telnet 服务器是不是太天真了,我是否低估了 telnet 客户端/服务器应该是什么,感谢您的帮助。
另外,如果有人有任何好的/简单的 telnet 客户端示例,那将非常有用!
【问题讨论】:
-
请修正您的代码格式,无法阅读。
-
我为你修好了。您应该与使用花括号的方式保持一致。而“写一行,缩进打开的大括号,缩进正文,取消缩进大括号,取消缩进下一行”看起来真的很奇怪。
-
好的,谢谢。你对这个问题有什么意见吗?
-
好吧,看起来它可能是半有用的,但我想做的就是打开与 telnet 服务器的连接并监听新数据,客户端需要那么复杂吗?跨度>
标签: java sockets client telnet