TCP套接字数据发送/恢复操作

时间:2013-06-19 11:40:52

标签: c# sockets packet mmo

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

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

1 个答案:

答案 0 :(得分:3)

保证只能在一个Send()内获得单个Receive()的所有数据。

TCP算法透明地将您的数据拆分为单个数据包,并且没有直接的API控制数据包的大小,或者当数据对于单个数据包来说太大时数据如何被拆分。有关TCP如何做到这一点的详细信息,请参阅Nagle's algorithm

如果要控制确切的数据包内容并发送时间,则应考虑使用基于数据包的协议 UDP