我刚刚开始学习本教程的这一部分。我只对端口是什么等有一个基本的了解。
我试图运行这段代码:
import java.io.*;
import java.net.*;
public class EchoClient {
public static void main(String[] args) throws IOException {
Socket echoSocket = null;
PrintWriter out = null;
BufferedReader in = null;
try {
echoSocket = new Socket("taranis", 7);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(
echoSocket.getInputStream()));
} catch (UnknownHostException e) {
System.err.println("Don't know about host: taranis.");
System.exit(1);
} catch (IOException e) {
System.err.println("Couldn't get I/O for "
+ "the connection to: taranis.");
System.exit(1);
}
BufferedReader stdIn = new BufferedReader(
new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) != null) {
out.println(userInput);
System.out.println("echo: " + in.readLine());
}
out.close();
in.close();
stdIn.close();
echoSocket.close();
}
}
“不知道主机:taranis。Java 结果:1”
是我得到的错误捕获。根据我有限的理解;回声服务器是我机器上存在的东西吗?如果是这种情况,我需要做什么才能让它运行?还是我走远了?还有为什么他们选择“taranis”作为参数?
我还用“localhost”替换了“taranis”,看看发生了什么。这次它最终捕获了 IOException。
编辑:所以我发现在win7中默认禁用回显服务器并激活它。但是我什至无法在 telnet 上连接到它。我想我可能只是在我的头上。我也试过你推荐的插座,但没有成功。