返回信息流先说下场景:客户端通过tcp连接服务端,要求客户端能实时获取与服务端的传输延时,当超过一个阈值就断开连接。
windows下关于传输超时有这两个参数:
```C
int timeout = 3000; //3s
setsockopt(sock_fd,SOL_SOCKET,SO_SNDTIMEO,&timeout,sizeof(timeout));
setsockopt(sock_fd,SOL_SOCKET,SO_RCVTIMEO,&timeout,sizeof(timeout));
```
但是这两个参数貌似是对send、recv的函数调用的超时,而不是数据从客户端网络到服务器网络的传输超时,对我没什么帮助。
当然最次的方法可以从应用层入手,做一套延迟检测模型,但是代价可能稍微大点,想请问大家有没有其他的办法解决这个问题?
这是一条镜像帖。来源:北邮人论坛 / cpp / #92584同步于 2016/7/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
如何获取或者设置tcp传输延时?
asm
2016/7/17镜像同步5 回复
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
在应用层写一个LIV包,收到就返回。但是这也有问题,例如Nagle,例如缓存爆炸丢包etc。
所以更好的一个解决方案是自己实现一个TCP。
==
借楼征个妹子,谢谢。