我正在编写套接字客户端-服务器程序。客户端在java中,服务器在C中。 我想从服务器中的文件中读取并逐行写入客户端。 客户端片段:
while(!(answer = input.readLine()).equals("end")) {
System.out.println(answer);
}
服务器:
char* line;
size_t len = 0;
ssize_t read;
FILE* out;
while((read = getline(&line, &len, out))!=-1){
write(fd, line, read);
}
write(fd, "end", 3);
我开始输出文件中的每一行,但它永远不会退出循环。
我想做什么?
当客户端连接服务器读取行时,将其写入客户端,现在客户端可以将新行添加到文件(其他客户端将读取)
任何人都知道我该如何解决它?
最佳答案
C read()
在流的末尾返回零,而您并未对其进行测试。
Java readLine()
在流结束时返回 null,您也没有对此进行测试。
关于java - 循环读取套接字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647557/