TCP/IP 数据流套接字传输注意事项

1. IP地址修改后关闭原来套接字

  1. 问题的出现: 一个本机客户端已链接的套接字, 在修改本机IP后, 再去关闭该链接服务器套接字;
  2. 出现的状况: close() 或shutdown() 显示成功. 注意: 此时去服务器查看套接字状态, 发现该套接字在服务器上并未关闭, 继续处于链接ESTABLISHED状态.
  3. 在关闭链接套接字前, 一定要 确保此套接字对应的IP地址不被修改..
  4. 该错误容易出现在: DHCP 服务 与 manual set IP 操作之间.. 确保关闭链接套接字先于这两种操作.
  5. 当对机器的IP进行修改时, 它会有一段响应的滞后时间, 所以在接下来继续链接服务器时, 需要避过该段时间. 否则会导致套接字的链接地址为 被修改前的IP地址, 此时, client 向服务器传输数据,结果为 服务器接收端 无反应, client端写入数据成功. 此时一定很郁闷纠结,
    原因:
      1. 向服务器传输 时, 此时client IP 地址为修改后的, 而套接字链接时的IP地址为修改前的, 向该套接字中写入数据, 会被放在 套接字发送缓冲区中, 不会被发送出去. 导致虽然client写入成功, 但是server确接受不到.
发布了76 篇原创文章 · 获赞 23 · 访问量 15万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章