我有一個關於在Linux上使用c語言進行套接字編程的問題。socket編程read()函數錯誤爲什麼?
當我的客戶端程序連接到服務器程序時,有時會在read()函數中出現無法識別的錯誤。
我不確定什麼情況會導致此問題。
看起來像無限循環。程序停在那個地方,發生任何事情。
即使當我寫我這樣的代碼
int message = 1;
while(message > 0){
printf("READ ERROR");
message = read(sockfd, recvBuff, sizeof(recvBuff));
}
它可以打印任何東西!
正如我所想,如果出現錯誤,至少應打印READ ERROR一次。
爲什麼會出現這種情況?
我不明白你的代碼。你的while()退出'cos消息不會大於1,此外,爲什麼只接收到一個被認爲不好的字符? – ThingyWotsit
編譯所有警告和調試信息'gcc -Wall -Wextra -g'。 **使用調試器'gdb' **(也許還有[strace(1)](http://man7.org/linux/man-pages/man1/strace.1.html) –
對不起,這是錯誤的,我編輯時,條件消息> 0 –