从C客户端向Java服务器发送字符串

时间:2017-09-21 07:54:05

标签: java c server client client-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。我知道之前已经问过这个问题,但这对我没有帮助,所以我开始了一个新的主题。

1 个答案:

答案 0 :(得分:8)

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

为客户端发送的命令添加换行符:

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