在客户端接收/读取它之前发送到客户端的数据/缓冲区是否合并为一个?

时间:2017-01-05 19:39:30

标签: c# sockets tcp

当我使用基于TCP的连接时,如果我向客户端发送一些数据,但由于滞后或某种原因客户端不读取数据。数据是否合并(Socket.Avalialbe =先前请求+新请求)和Socket.Recieves两个缓冲区组合在一起还是需要调用Soocket.Receive两次以接收数据以便我发送它?

1 个答案:

答案 0 :(得分:0)

有可能在一个'recv'中你会获得两个'发送'发送的所有字节。

TCP不维护邮件边界。应用程序可以理解数据。你不能假设一个'发送'将导致一个'recv'。收到的字节将在TCP的缓冲区中,直到应用程序调用'recv'。