C#TCP客户端在其他TCP帧中发送数据

C#TCP客户端在其他TCP帧中发送数据,tcp,frame,tcpclient,Tcp,Frame,Tcpclient,我使用TCPClient和NetworkStream通过套接字发送短消息(Modbus帧)。我使用NetworkStream中的Write()方法发送数据 问题是我使用了两次或两次以上的write(),但消息是在一个TCP帧中发送的(通过Wireshark检查),对于我来说,所有写入的消息都必须在另一个TCP帧中发送 有没有办法解决这个问题?听起来好像TCP正在缓冲您的数据以优化性能。您可能希望在两次发送之间设置延迟或禁用Nagel的算法(使用SetSocketOption NoDelay tr

我使用
TCPClient
NetworkStream
通过套接字发送短消息(Modbus帧)。我使用
NetworkStream
中的
Write()
方法发送数据

问题是我使用了两次或两次以上的
write()
,但消息是在一个TCP帧中发送的(通过Wireshark检查),对于我来说,所有写入的消息都必须在另一个TCP帧中发送


有没有办法解决这个问题?

听起来好像TCP正在缓冲您的数据以优化性能。您可能希望在两次发送之间设置延迟或禁用Nagel的算法(使用SetSocketOption NoDelay true)

这可能会影响TCP性能,因此在使用TCP时/在何处都要小心

迈克