recv()调用是否拦截数据包中的数据,还是可以获取带时间戳的数据包?
答案 0 :(得分:2)
在数据报套接字(如UDP)上,recv
获取数据报中的数据。然而,TCP是一个流模式套接字,recv
获取一个字节集合而不考虑数据包。
使用低级API可以获取数据包,但是如果您希望看到send
次调用之间的界限,那么运气不好......数据包中不存在该信息。 / p>
答案 1 :(得分:1)
Recv从已成功接收的套接字中获取数据。它没有告诉你何时发生;即没有时间戳。
您是否会详细说明您要解决的问题(“为什么需要这个?”)而不是您尝试的解决方案? (或者我完全误解了你的问题?)
答案 2 :(得分:0)
如果您自己的代码正在向您正在接收数据的远程机器发送数据...那么您可以使用自己的应用程序级数据格式...例如在发送时间戳之后发送数据(某些指定的字节数) )。
可以在接收端提取此信息。虽然如上所述连接是TCP ...但数据将采用流格式,而不是像UDP那样完整的数据包。