从 C 客户端发送一个字符串到 Java 服务器

Sending a string from C client to Java server

我正在尝试从我的 c 客户端向 Java 服务器发送一个字符串,然后服务器向客户端发送一个文本文件。

这是发送字符串的客户端代码部分。

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 客户端读取字符串的部分,其余代码工作正常并且文件被传输。但是如果不注释字符串接收码,服务端和客户端都会一直等待。

如果有人能帮我解决这个问题,我将不胜感激。

P.S。我知道以前有人问过这个问题,但这对我没有帮助,所以我开始了一个新话题。

br.readLine() 想读一行。客户端从不发送换行符,所以服务器正在等待换行符......永远!

在客户端发送的命令中添加一个换行符:

int n = write(sock_fd,"Ready\n", 6);