【发布时间】:2018-03-02 11:30:07
【问题描述】:
我正在尝试从我的 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 客户端读取字符串的部分,其余代码工作正常并且文件被传输。但是如果不注释字符串接收代码,服务端和客户端都会一直等待。
如果有人为我解决这个问题,我将不胜感激。
附:我知道以前有人问过这个问题,但这对我没有帮助,所以我开始了一个新线程。
【问题讨论】:
-
也许您应该在消息中添加一个新行?我希望像
br.readline()这样的电话可以阅读到下一个换行符 -
是的,这正是我错过的
标签: java c server client client-server