Linux后台网络程序在系统更改IP地址以后是怎样保持socket连接的?
我现在写的一个网络程序就遇到了这样的问题,用户更改IP以后,select检测不到socket失效,但实际上IP更改以后,之前创建的socket便失效了,网络中的组播、广播、TCP请求都监听不到。
我现在有一个初步的想法:隔一定时间取一次本地IP地址,如果改变则关闭已有socket然后重新创建并监听,但这样做系统负担有些大。
所以我想知道大伙有没有遇到过类似的项目?是否有更好的解决办法?Linux上常用的通讯软件(如MSN客户端、网络打印机)是怎样实现更改IP后保持连接的呢?