我的服務器正在向客戶端發送數據包,但未顯示第二個數據包。 我不知道如果我的套接字是阻塞類型,爲什麼會發生這種情況。如何在客戶端和服務器之間實現同步
while(1){
memset(buf,0,1024);
numbytes=0;
if ((numbytes = recv(sockfd, buf, 1024, 0)) == -1) {
perror("recv");
exit(1);
}
buf[numbytes] = '\0';
printf("%s\n",buf);
fflush(stdout);
}
fclose(fp);
close(sockfd);
你是什麼意思*試圖接收兩次*?你能否澄清你的問題? – cnicutar 2012-02-02 09:10:28
Wireshark是一個方便的工具,它可以幫助你在這種情況下 – stdcall 2012-02-02 09:13:15
這意味着while循環迭代兩次,第一次我得到的數據,我從服務器第二次發送它的唯一,空,但根據我應該阻止和等待數據來自服務器端。 – tod 2012-02-02 09:16:17