我正在用 C++ 编写套接字程序。该程序运行在一组集群机器上。
刚刚进入socket编程,刚学会发送和接收。我认为,在程序长时间运行期间,一些 TCP 连接可能会丢失。在这种情况下,需要顺利地重新连接服务器和客户端。
不知道是否有一个众所周知的基 native 制(或算法?协议(protocol)?)来实现它。我发现有很多不同语义的套接字错误代码,这让我难以下手。
任何人都可以提供任何我可以从中学习的引用代码吗?
谢谢,
最佳答案
并不复杂。仅有的两个对连接不致命的错误代码是:
- EAGAIN/EWOULDBLOCK,其实是同一个数字的两个名字,意思是在一段时间后,或者在
select()/poll()/epoll()之后,可以重新尝试操作
已表明; - EINTR,意思是“中断的系统调用”- 再试一次。
所有其他对连接都是致命的,应该导致您关闭它。
关于c++ - 处理 TCP 故障的正确机制是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43358282/