我为我的一个项目“拍卖”编程。我在服务器端和客户端都设置了登录的所有条件。我的程序运行得更好,直到某些语句,但同时服务器停止响应。 我通过打印报表和互联网来研究它,我发现它是同步问题而不是编码。可能是因为我不确定的原因会有所不同。 我还想提一下,当我在条件下放入“read()”时,事情正在按预期运行。任何人都可以告诉我如何删除/避免这种同步问题(可能是别的而不是同步)? Server.cpp(只有一些运行良好的部分)
while(((n = read(sockfd,buffer,4096))!=0)&&(l==false)) {
if(i==0) cout<<"Username:"<<buffer;
if(i==1) { l = true; cout<<"Password:"<<buffer; }
i++;
}
Server.cpp(在修改之前的部分,在i = 1处停留)
for(i=0; i<2; i++) { cout<<endl<<"i="<<i<<endl;
bzero(&buffer, sizeof(buffer));
if((n = read(sockfd,buffer,4096))==0) { cout<<"problem";
close(sockfd);
FD_CLR(sockfd, &allset);
client[i] = -1;
} else { cout<<buffer<<i<<endl; if(i==1) {cout<<"copied password"; }
if(i == 0) { cout<<"copied user";} }