0

我正在开发 MMO 游戏服务器。我必须了解 TCP 数据发送/接收操作(不是用法,详细信息)。我想问这个:如果我从.net socket客户端发送一个5kb的数据,服务器socket可以再处理一次这个数据发送操作吗?即 5kb 的数据是否可以再接收一个操作,如 5kb = 1. operation:2kb + 2. operation:3kb?

我想再说一遍;如果客户端向服务器发送了一个数据,我们的服务器监听器的 Recv() 方法是否可以再一次将该数据传递给我们的处理程序类(回调操作)?

4

1 回答 1

3

不能保证从Send()单个Receive().

TCP 算法透明地将您的数据拆分为单独的数据包,并且没有直接的 API 控制数据包的大小,或者当数据对于单个数据包来说太大时如何拆分数据。有关TCP 如何在后台执行此操作的详细信息,请参阅Nagle 的算法。

如果您想控制确切的数据包内容和发送时间,您应该考虑使用基于数据包的协议UDP

于 2013-06-19T11:54:03.083 回答