我正在尝试从我的C客户端向Java服务器发送一个字符串,之后服务器向客户端发送一个文本文件。
以下是发送字符串的客户端代码部分。
这是Java代码的服务器部分:
现在我已经确认,如果我删除服务器代码中尝试从C客户端读取字符串的部分,剩余的代码可以正常工作并传输文件。但是,如果不注释接收字符串的代码,服务器和客户端都会一直等待。
如果有人能解决这个问题,我将非常感激。
附言:我知道这个问题之前已经被问过了,但那并没有帮助我,所以我发起了一个新的主题。
以下是发送字符串的客户端代码部分。
int n = write(sock_fd,"Ready",5);
if (n < 0)
printf("ERROR writing to socket\n");
recv_file(sock_fd, filename);
这是Java代码的服务器部分:
InputStream is = socket.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String message = br.readLine();
System.out.println("Message received from client is " + message);
String FILENAME = "data.txt";
sendFile(socket, "data.txt");
现在我已经确认,如果我删除服务器代码中尝试从C客户端读取字符串的部分,剩余的代码可以正常工作并传输文件。但是,如果不注释接收字符串的代码,服务器和客户端都会一直等待。
如果有人能解决这个问题,我将非常感激。
附言:我知道这个问题之前已经被问过了,但那并没有帮助我,所以我发起了一个新的主题。
br.readline()
这样的调用可以读取到下一个换行符。 - Ronald