免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2715 | 回复: 1
打印 上一主题 下一主题

INADDR_ANY 与端口复用 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2011-12-01 16:53 |只看该作者 |倒序浏览
struct sockaddr_in my_addr;
  my_addr.sin_addr.s_addr = INADDR_ANY;
  其中INADDR_ANY就是指定地址为0.0.0.0的地址,这个地址事实上表示不确定地址,或“所有地址”、“任意地址”

        int        opt = 1;
        int len = sizeof(opt);
        setsockopt(pSockData->so_fd,SOL_SOCKET,SO_REUSEADDR,(const char *)&opt,len);
   SO_REUSEADDR 为true 就是允许在相同的端口不同的IP地址上创建套接描述字。
   这样的目的是根据允许断开前后 监听时使用的IP地址不同。
这样在TCP(UDP)网络连接断开之前(TIME_WAIT没结束之前)可以当前空闲的本地IP地址的同一端口重新监听。
我想问的是
1 假如一个程序连续异常断开连接 每次打开和关闭 都再 TIME_WAIT 时间内完成 这样多次之后当前所有的本地IP都处于TIME_WAIT 时间内,没有空闲的本地IP了,这样端口是不是就无法复用了?
2 INADDR_ANY 表示所有地址 那这些所有地址都是那些地址?

论坛徽章:
0
2 [报告]
发表于 2011-12-01 17:24 |只看该作者
1、INADDR_ANY 是由系统帮你填好地址,如果没有两个或两个以上网卡,可以这样用,如果网卡不止一块,最好自己填。
2、一般黑客就是利用TCP三次握手机制,使握手不能完成,进而使系统资源用尽崩溃,利用TIME_WAIT这样的情况不多,当然如果速度够快的话,也会有你所说的情况
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP