我在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