C# 为什么事务被分块发送到接收方端

C# 为什么事务被分块发送到接收方端,c#,sockets,tcp,wireshark,C#,Sockets,Tcp,Wireshark,我在一个客户机-服务器应用程序中工作,在该应用程序中,我的应用程序充当客户机,我们将事务发送到服务器。在我这端的通信中,我一下子发送了4443个“是”的事务,但在服务器端,他们收到了大量的事务细节 当我在Wireshark的帮助下检查我端的TCP日志时,我发现从我端也有成批的事务进入服务器端。我已经将套接字数据包的缓冲区大小设置为8092字节,但这个问题仍然存在,所以当我一次从应用程序发送完整数据时,为什么在网络中这些数据包会成片发送呢 请查找Ethereal日志文件以供参考它所依赖的,这是底层

我在一个客户机-服务器应用程序中工作,在该应用程序中,我的应用程序充当客户机,我们将事务发送到服务器。在我这端的通信中,我一下子发送了4443个“是”的事务,但在服务器端,他们收到了大量的事务细节

当我在Wireshark的帮助下检查我端的TCP日志时,我发现从我端也有成批的事务进入服务器端。我已经将套接字数据包的缓冲区大小设置为8092字节,但这个问题仍然存在,所以当我一次从应用程序发送完整数据时,为什么在网络中这些数据包会成片发送呢

请查找Ethereal日志文件以供参考

它所依赖的,这是底层网络的一个属性。以太网通常为1492或1500字节。因为您使用的是流式协议(TCP),所以数据包一到达就得到数据块,组织数据块是应用程序的责任,而不是套接字的责任。

您所说的“我已将套接字数据包的缓冲区大小设置为8092字节”到底是什么意思?请出示你的密码。这并不重要——如果您使用TCP,但假设您的数据包没有被拆分,那么您基本上误用了TCP,这是一种基于流的协议。