我的服务器正在向客户端发送数据包,但未显示第二个数据包。 我不知道如果我的套接字是阻塞类型,为什么会发生这种情况。如何在客户端和服务器之间实现同步
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