设为首页 加入收藏

TOP

关于Linux的socket的一个奇怪现象
2014-11-24 00:45:17 来源: 作者: 【 】 浏览:4
Tags:关于 Linux socket 一个 奇怪 现象

  在Linux下使用一个TCP Socket进行Listen的时候,最近发现一个诡异的问题。


  accept(2)是可以接受一个sockaddr指针来返回一个远端主机的地址,但是,实际情况是,如果这个连接是这个程序第一次发生的时候,是没有获得任何数据的,从第二次开始就没有这个问题,也就是紧跟这accept函数使用一个getpeername(2),即可以得到连接的主机的IP地址,从这以后开始的连接都没有这个问题。可是,如果accept中如果用accept(sock_fd,NULL,NULL)这样的形式,来使accept(2)不返回远端主机地址的情况下,第一次getperrname函数也是什么都得不到的。


  这个问题在我现在能测试的平台有Linux 2.4.20, glibc-2.3, Linux 2.6.18 glibc-2.3, Linux 2.6.20-21, glibc 2.7都有这个问题,不知道是不是socket实现的bug。


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇Linux内核中的红黑树的使用 下一篇Linux-Tomcat内存和图型显示配置

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: