我需要构建一个可以通过网络接收数据并使用这些数据做一些不相关的事情的应用程序。
这是一段代码,可以清楚地说明我在做什么。
在服务器端:
static Socket client = null;
static ServerSocket ss = null;
if (ss != null) {
ss.close();
}
ss = new ServerSocket(5513);
isrunning = true;
System.out.println("Waiting for client...");
client = ss.accept();
System.out.println("Client accepted.");
BufferedReader in = new BufferedReader(new InputStreamReader(client.getInputStream()));
和客户端:
Socket client = null;
PrintWriter out = null;
try {
client = new Socket("hostname", 5513);
out = new PrintWriter(client.getOutputStream(), true);
}
请注意,这只是一段代码。代码中没有错误。
运行服务器端代码后,它正确地等待客户端连接。
现在问题来了。一旦我尝试从客户端连接,我就会收到“连接被拒绝”错误。
但是,我在互联网上发现了一些东西,它告诉我尝试从客户端进行远程登录。例如,让服务器端的 IP 为 192.168.1.1。因此,使用此命令后:
telnet 192.168.1.1 5513
我实际上与服务器建立了连接。该命令将启动一个空屏幕,并且我在命令行中手动键入的所有内容都会在按下回车后发送到服务器端(通过调试检查)。
所以,我可以手动连接到服务器端并发送一些数据,但我的代码拒绝连接。
谁知道我做错了什么?