我在C客户端和服务器之间实现了一个简单的连接。 在客户端,我在一个循环中读取文件;每次BUFFER_SIZE个字节并将其发送到服务器端(没有上传错误处理)。是否从套接字读取等待或获取EOF?
//client side
bytesNumInput = read(inputFileFD,bufInput,BUFFER_SIZE)
bytesSend = write(sockfd,bufInput,bytesNumInput)
当然,服务器也处于循环状态。
//server side
bytesRecv = read(sockfd,bufOutput,bytesNumInput)
现在,我的问题是:
- 我能EOF在连接的中间,如果服务器读取比客户端快?
- 阅读函数是否等待获取所有数据或与从文件读取相同?
- 是否有可能服务器将在1次迭代中处理2次读取迭代?
[文档在这里。](http://pubs.opengroup.org/onlinepubs/9699919799/functions/read.html)它都在那里。 – alk
“我可以在中间获得EOF ......”,通过“EOF”,你问“文件结束可能发生在中间......”**或**“”可以'read() '返回EOF'在中间......“? – chux
@chux这个问题的两种形式都没有意义,'EOF在中间'已经是一个矛盾的问题,你的评论是没有意义的 – EJP