在TCP客户端上接收数据包中的数据

时间:2011-02-19 01:16:33

标签: c++ tcp client winsock

recv()调用是否拦截数据包中的数据,还是可以获取带时间戳的数据包?

3 个答案:

答案 0 :(得分:2)

在数据报套接字(如UDP)上,recv获取数据报中的数据。然而,TCP是一个流模式套接字,recv获取一个字节集合而不考虑数据包。

使用低级API可以获取数据包,但是如果您希望看到send次调用之间的界限,那么运气不好......数据包中不存在该信息。 / p>

答案 1 :(得分:1)

Recv从已成功接收的套接字中获取数据。它没有告诉你何时发生;即没有时间戳。

您是否会详细说明您要解决的问题(“为什么需要这个?”)而不是您尝试的解决方案? (或者我完全误解了你的问题?)

答案 2 :(得分:0)

如果您自己的代码正在向您正在接收数据的远程机器发送数据...那么您可以使用自己的应用程序级数据格式...例如在发送时间戳之后发送数据(某些指定的字节数) )。

可以在接收端提取此信息。虽然如上所述连接是TCP ...但数据将采用流格式,而不是像UDP那样完整的数据包。