我正在编写一个简单的客户端,它通过 TCP 流读取二进制数据。由于文件是逐部分发送的,因此我有一个类似于此的循环:
while (1 /* Maybe a check for EOF or if the socket is closed here ? */) {
ssize_t bytes_red = recv(
if (bytes_read <= 0) // not working properly ?
break;
...
}
读取是通过 recv() 方法完成的,该方法返回接收到的字节数。这个想法显然是只要打开TCP流就可以读取数据,但是上面的方法似乎对我不起作用。
还有其他想法吗?在关闭流或遇到 EOF 之前,从套接字读取的干净方法是什么?
编辑:上述方法工作正常,我在其他地方有一个错误。