如果它所连接的以太网接口(interface)脱离网络,accept 函数是否返回错误(-1)?如果不是,应用程序(TCP 服务器)将如何知道它的接口(interface)不再处于事件状态??
我正在使用一个线程来接受连接,而不是使用任何“select”语句来这样做。直接调用 accept() 函数,但如果我从以太网接口(interface)中删除 IP 地址,它不会以某种方式重新调整错误。
使用C,工作环境为linux。
最佳答案
通常您不会将您的服务器套接字绑定(bind)到特定的 IP 地址(您使用 INADDR_ANY)。因此,即使您删除了您的以太网 IP 地址,您仍然可以使用环回接口(interface)联系您的服务器。或者其他带有 IP 地址的接口(interface)。
如果您想确保您的服务器可以从网络访问,检查接口(interface)状态对您没有多大帮助。它只是通过网络的长路径上的单跳。您需要在其他地方使用测试客户端来检查服务器的可达性。
关于linux - 如果 TCP 服务器脱离网络,接受函数是否返回错误 (-1),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9075735/