http://www.nongnu.org/lwip/2_1_x/index.html
https://beej.us/guide/bgnet/html/

问题: 如果tcp连接过程中网断了(网线拔出/路由器断电)怎么办?
回答: 参考https://stackoverflow.com/questions/14782143/linux-socket-how-to-detect-disconnected-network-in-a-client-program
总的来说, socket中的sendrecv都不会关心网是不是断了. 正如前述参考回答中所说, tcp send只有在tcp连接没有正确建立或者缓冲溢出的时候才会明确报错, 否则它只会不断重试, 在linux上重试时间可能长达5分钟. 同样,recv如果不设置超时, 就会一直等待, 它也不知道网断了.

标签: none 阅读量: 1343

添加新评论