gpt4 book ai didi

java - 没有收到服务器的响应

转载 作者:行者123 更新时间:2023-12-01 10:52:30 27 4
gpt4 key购买 nike

我无法收到服务器的响应。当我启动客户端和服务器时,什么也没有发生。

这是服务器代码

public class Server {

public static void main(String[] zero) throws IOException {
ServerSocket socketServer;
Socket socketDuServer;
PrintWriter out;
BufferedReader in;
socketServer = new ServerSocket(2009);
socketDuServer = socketServer.accept();
in = new BufferedReader(new InputStreamReader(socketDuServer.getInputStream()));
String message = in.readLine();
out = new PrintWriter(socketDuServer.getOutputStream(), true);
String numberMessage = "The Number of ET est:" + StringToArrayChar(message);
System.out.println(numberMessage);
out.print(numberMessage);
out.flush();
socketDuServer.close();
socketServer.close();
}

public static int StringToArrayChar(String s) {
int c = 0, k = 0;
char[] charArray = s.toCharArray();
for (int j = 0; j < s.length(); j++) {
if (charArray[j] == 'e') {
k = j + 1;
if (charArray[k] == 't') {
c++;
}
}
}
return c;
}
}

这是客户端代码

public class Client {

public static void main(String[] args) throws IOException {
Socket socket;
BufferedReader in;
PrintWriter out;
String message;
socket = new Socket(InetAddress.getLocalHost(), 2009);
out = new PrintWriter(socket.getOutputStream(), true);
out.print("helloet");
out.flush();
in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
message = in.readLine();
System.out.println(message);
socket.close();
}
}

最佳答案

您的服务器尝试接收线路,但您的客户端从不发送线路。

没有办法解决这个问题。为什么?因为我们无法判断服务器是否错误地尝试接收线路,或者客户端是否错误地未发送线路。我们唯一能知道的是通过查阅协议(protocol)规范来解释服务器和客户端如何交换数据。而且没有一个。失败。

请退一步。阅读 TCP 之上的一些协议(protocol)的规范,例如 HTTP、IRC 和 SMTP。然后,在开始编写使用 TCP 的代码之前,花时间清楚地记录您的协议(protocol)。这将避免像这样的错误,以及其他数百个第一次尝试使用 TCP 的人不可避免地会犯的错误。

我知道这听起来很痛苦。但相信我,还有几十个类似的错误等着你去犯。

关于java - 没有收到服务器的响应,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33767943/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com