INADDR_ANY 与端口复用

Q: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 表示所有地址 那这些所有地址都是那些地址?

A:

1、INADDR_ANY 是由系统帮你填好地址,如果没有两个或两个以上网卡,可以这样用,如果网卡不止一块,最好自己填。
2、一般黑客就是利用TCP三次握手机制,使握手不能完成,进而使系统资源用尽崩溃,利用TIME_WAIT这样的情况不多,当然如果速度够快的话,也会有你所说的情况

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值