我正在C中实现客户端和服务器之间的简单连接。 在客户端,我正在循环,从文件中读取;每次BUFFER_SIZE字节并将其发送到服务器端(没有上传错误处理)。
//client side
bytesNumInput = read(inputFileFD,bufInput,BUFFER_SIZE)
bytesSend = write(sockfd,bufInput,bytesNumInput)
当然服务器也在循环中。
//server side
bytesRecv = read(sockfd,bufOutput,bytesNumInput)
现在,我的问题是:
答案 0 :(得分:2)
答案 1 :(得分:1)
如果服务器读取速度快于客户端,我可以在连接中间获得EOF吗?
没有。 EOF表示对等方已断开连接。如果连接仍然存在,read()
将阻塞,直到(a)传输至少一个字节,(b)发生EOF,或(c)发生错误。
read函数是等待获取所有数据还是与从文件读取相同?
见上文(a)。
服务器是否可以处理2次读入1次写入迭代?
是。 TCP是字节流协议,而不是消息传递协议。