当前位置: 技术问答>linux和unix
accept函数为何返回0???
来源: 互联网 发布时间:2015-04-02
本文导语: if(new_fd=accept(sockfd,(struct sockaddr *)&cliaddr, (socklen_t *)&sin_size)==-1){ perror("accept error"); continue; } ...
if(new_fd=accept(sockfd,(struct sockaddr *)&cliaddr,
(socklen_t *)&sin_size)==-1){
perror("accept error");
continue;
}
虽说accept成功时返回非负值,但是当返回0的时候,我的write函数就write到0上面去了,即控制台终端.
根据我别的程序的经验,这个值本应大于2的.
现在为什么会返回零呢?我的sockfd应该是没错的,为3.
请大侠出手帮忙分析!!!
(socklen_t *)&sin_size)==-1){
perror("accept error");
continue;
}
虽说accept成功时返回非负值,但是当返回0的时候,我的write函数就write到0上面去了,即控制台终端.
根据我别的程序的经验,这个值本应大于2的.
现在为什么会返回零呢?我的sockfd应该是没错的,为3.
请大侠出手帮忙分析!!!
|
if(new_fd=accept(sockfd,(struct sockaddr *)&cliaddr,
(socklen_t *)&sin_size)==-1)
应该是
if((new_fd=accept(sockfd,(struct sockaddr *)&cliaddr,
(socklen_t *)&sin_size))==-1)
赋值操作符的优先级低。
(socklen_t *)&sin_size)==-1)
应该是
if((new_fd=accept(sockfd,(struct sockaddr *)&cliaddr,
(socklen_t *)&sin_size))==-1)
赋值操作符的优先级低。
|
这行程序有没有错!
要看整体的程序啊!你前面的程序也要贴出来,只要让别人看清楚你的socket的从头开始到这里被做了哪些动作!
要看整体的程序啊!你前面的程序也要贴出来,只要让别人看清楚你的socket的从头开始到这里被做了哪些动作!