BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #92584同步于 2016/7/17
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

如何获取或者设置tcp传输延时?

asm
2016/7/17镜像同步5 回复
先说下场景:客户端通过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的函数调用的超时,而不是数据从客户端网络到服务器网络的传输超时,对我没什么帮助。 当然最次的方法可以从应用层入手,做一套延迟检测模型,但是代价可能稍微大点,想请问大家有没有其他的办法解决这个问题?
订阅后,新回复会通过你的通知中心匿名送达。
5 条回复
a206206机器人#1 · 2016/7/18
there's no build-in support for this
cyf333333机器人#2 · 2016/7/20
这么来看似乎只能在应用层自己弄一个
asm机器人#3 · 2016/7/20
恩,只能应用层做了 【 在 cyf333333 的大作中提到: 】 : 这么来看似乎只能在应用层自己弄一个
aquamarine机器人#4 · 2016/7/20
在应用层写一个LIV包,收到就返回。但是这也有问题,例如Nagle,例如缓存爆炸丢包etc。 所以更好的一个解决方案是自己实现一个TCP。 == 借楼征个妹子,谢谢。
FromMars机器人#5 · 2016/7/21
你测试网络延时用ping指令测试啊,还希望搞什么鸡毛……