issues
search
chenshuo
/
muduo
Event-driven network library for multi-threaded Linux server in C++11
https://github.com/chenshuo/muduo
Other
14.7k
stars
5.15k
forks
source link
当服务端快速重启时 客户端得链接判断链接还是建立的
#524
Closed
xluckly
closed
2 years ago
xluckly
commented
3 years ago
当服务端快速重启时 connected()返回true 但是当前链接已经不可用了 怎么解决下
chenshuo
commented
3 years ago
我想先弄明白你具体要解决什么问题。
任何时候,服务端重启之后,客户端的 connected() 至少要在几十微秒到几十毫秒(取决于网络延迟)之后才能从 true 变成 false。在这期间,连接已经不可用了,你发的数据不会被服务端收到。极端一点,你在连接刚刚建立,connected() 返回 true 之后立刻发送数据,也不一定保证能被服务端收到。这是 TCP 网络通信的本质决定的。你如果想要克服这个困难,需要实现应用层的心跳及应答协议。
你强调“服务端快速重启”,如果跟正常重启有区别,请明确说明。如果“服务端快速重启”导致客户端的 connected() 一直是 true,那说明网络库有 bug,值得描述复现步骤及修复。
当服务端快速重启时 connected()返回true 但是当前链接已经不可用了 怎么解决下