2012-04-19 47 views
0

我试图返回时间(秒,毫秒,微秒)从服务器的回复需要的记录时间,我的客户端发送一个小的数据包到服务器,服务器将回复到客户端。现在,我要的是插入在从客户端发送到服务器的数据包的时间戳的方式与服务器追加自己的时间戳,以泰德包,并将其返回给客户端。当客户端收到该数据包时,它会查找两次之间的差异,并将该差异作为往返时间+服务器处理时间返回。TCP时间戳,到回答

我的问题是,我知道有一个与TCP套接字时间戳的选择,但也有在网络上没有例子了吧。如果任何人都可以引导我这将是伟大正确的方向。

感谢 操作系统:Ubuntu的11.10 语言:C 插座:BSD

回答

0

如果你感兴趣的业绩衡量,你可能会更好安装Wireshark http://www.wireshark.org/并查看数据包日志。这会给你准确的时间,而不会改变你测量的代码或堆栈。

0

根据如何在内心深处,你想要去的兔子洞......

如果要专门使用TCP数据包(如您的代码中)最直接的方法是从客户端发送一个数据包到服务器的有效负载仅由当前时间戳组成。当服务器接收到数据包时,将服务器的时间戳附加到有效负载并将其返回给客户端。

确保两个客户端/服务器的timesynced为好。

1

是客户端单线程?如果是这样,并且如果您只是测量往返+处理时间所花费的时间,那么您只需测量客户端发送数据包并接收相应响应的时间即可。 所以刚以毫秒为单位的客户端执行发送前,然后得到的时间以毫秒为单位的客户端收到响应后。这两个差异是往返时间+处理时间。当然,这只有在客户端是单线程的时候才起作用(即,它发送并立即调用recv并等待来自服务器的响应)