在Unix网络编程中同步问题

时间:2017-04-17 10:30:50

标签: c++ sockets unix

我为我的一个项目“拍卖”编程。我在服务器端和客户端都设置了登录的所有条件。我的程序运行得更好,直到某些语句,但同时服务器停止响应。 我通过打印报表和互联网来研究它,我发现它是同步问题而不是编码。可能是因为我不确定的原因会有所不同。 我还想提一下,当我在条件下放入“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";} }

0 个答案:

没有答案