一旦以太网接口断开(即电缆断开,接口关闭等),我需要关闭所有正在进行的Linux TCP套接字。
入侵/proc似乎并没有起到作用。没有找到任何有价值的ioctl。在应用程序级别手工操作并不是我想要的,我真的在寻找一种粗暴的、全球化的方式。
anyane以前有过这样的经历并愿意分享他的基础吗?
发布于 2010-07-19 21:24:21
避免应用程序级编码的最残酷的方法是黑客攻击您的内核,以便在所有连接超时较低的情况下激活TCP keepalive。
发布于 2010-07-20 04:24:37
这是很少需要的,而且经常是不起作用的。TCP是一种数据传输协议,除非有数据丢失,否则什么都不应该做。三思而后行,为什么你会需要它。
否则,您可以尝试定期轮询接口并检查UP标志。如果接口松开标志,则操作系统已经对拔出电缆和关闭接口做出了反应。man 7 netdevice,查看SIOCGIFFLAGS了解更多。
即使在插入电缆时,网络驱动程序也会在上生成事件,但我不确定您是否可以从用户访问该事件。您可能希望检查udev,因为它的documentation显式地提到了network interfaces。
https://stackoverflow.com/questions/3281315
复制相似问题