1. IP地址修改后关闭原来套接字
- 问题的出现: 一个本机客户端已链接的套接字, 在修改本机IP后, 再去关闭该链接服务器套接字;
- 出现的状况: close() 或shutdown() 显示成功. 注意: 此时去服务器查看套接字状态, 发现该套接字在服务器上并未关闭, 继续处于链接ESTABLISHED状态.
- 在关闭链接套接字前, 一定要 确保此套接字对应的IP地址不被修改..
- 该错误容易出现在: DHCP 服务 与 manual set IP 操作之间.. 确保关闭链接套接字先于这两种操作.
- 当对机器的IP进行修改时, 它会有一段响应的滞后时间, 所以在接下来继续链接服务器时, 需要避过该段时间. 否则会导致套接字的链接地址为 被修改前的IP地址, 此时, client 向服务器传输数据,结果为 服务器接收端 无反应, client端写入数据成功. 此时一定很郁闷纠结,
原因:
- 向服务器传输 时, 此时client IP 地址为修改后的, 而套接字链接时的IP地址为修改前的, 向该套接字中写入数据, 会被放在 套接字发送缓冲区中, 不会被发送出去. 导致虽然client写入成功, 但是server确接受不到.