C#/.net:通过TCP连接传输许多小块数据
我有一个应用程序需要通过TCP连接(WLAN)传输许多小(1-3字节)消息。 我知道一次发送100kB要比以非常小的片段(几乎是字节)发送快得多。 然而,我需要传输的信息大小只有1-3字节。在发送之前收集数据将提高吞吐量,但尽早/快速传输小块数据非常重要。因此,在发送之前收集数据是个问题。 现在我要问的是,最好的办法是,一方面不要单独发送每一条信息,另一方面不要将它们的传输延迟超过必要的时间。 现在我正在考虑创建一个小缓冲区。当第一条消息是add时,我启动了一个超时1ms的计时器。在这毫秒之后,数据将被传输。与队列中的字节数无关。但我不知道这是否是一个好的解决方案C#/.net:通过TCP连接传输许多小块数据,c#,.net,sockets,tcp,C#,.net,Sockets,Tcp,我有一个应用程序需要通过TCP连接(WLAN)传输许多小(1-3字节)消息。 我知道一次发送100kB要比以非常小的片段(几乎是字节)发送快得多。 然而,我需要传输的信息大小只有1-3字节。在发送之前收集数据将提高吞吐量,但尽早/快速传输小块数据非常重要。因此,在发送之前收集数据是个问题。 现在我要问的是,最好的办法是,一方面不要单独发送每一条信息,另一方面不要将它们的传输延迟超过必要的时间。 现在我正在考虑创建一个小缓冲区。当第一条消息是add时,我启动了一个超时1ms的计时器。在这毫秒之后,
NET的TCPClient/Server类本身就没有解决此类问题的方法。我的意思是,他们应该知道,当当前传输完成时。同时,它们可以累积所有发送请求,并将它们作为一个事务发送出去。默认情况下,TCP堆栈已经在内部缓冲了数据,以减少发送时的开销。有关详细信息,请参阅。只需确保您已启用此算法,即设置为false。这只是
NoDelay=true
,确定吗?