当前位置:  技术问答>linux和unix

求租:非堵塞accpet只能用一次

    来源: 互联网  发布时间:2016-07-18

    本文导语:  本帖最后由 lxq00 于 2009-11-18 13:44:25 编辑 用 fcntl(sock_fd, F_SETFL, O_NONBLOCK);  设置 socket为非堵塞的  然后用  while(1) {     memset((void *)&their_addr,0,sizeof(their_addr));     newfd= accept(ock_fd,(struct sockaddr *)&their_addr,(socklen_t...

本帖最后由 lxq00 于 2009-11-18 13:44:25 编辑

fcntl(sock_fd, F_SETFL, O_NONBLOCK); 
设置 socket为非堵塞的
 然后用 
while(1)
{
    memset((void *)&their_addr,0,sizeof(their_addr));
    newfd= accept(ock_fd,(struct sockaddr *)&their_addr,(socklen_t*)& sizeof(struct sockaddr_in));
    //循环方式来accpet connect的请求
   .................
   .................
}

请问什么 当第一次connect 连接时 触发 accpet  返回newfd 能使用
当以后再connect 时  accpet 始终返回-1  不可用 

请问是什么原因  应该怎么设置 方能可用  谢谢  急...............

|
请问什么 当第一次connect 连接时 触发 accpet  返回newfd 能使用
当以后再connect 时  accpet 始终返回-1  不可用 ;

accept()接受一个新的连接后,返回值要判断下:
RETURN VALUE
       The call returns -1 on error.  If it succeeds, it returns a non-negative integer that is a descriptor for  the
       accepted socket.

要是出错了,printf("error number %s", errno); 可以得出错误原因。

建议你试试selcet模型 。


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3