我有超过一个TCP套接字到客户端一样快,它可以在客户端/服务器连接,与服务器写入。

寻找在我的网络活动,生产客户端在大约2.5 MB接收数据/秒。

一个新的轻量级客户端,我写的只是阅读和基准率,拥有约5.0Mb /秒(这大概是最大速度的服务器可以传输)。

我想知道这里支配率,因为客户端不发送数据到服务器,告诉它任何速率限制。

有帮助吗?

解决方案

在TCP它是客户端。如果服务器的TCP窗口充满了 - 它需要等到从客户端多个ACK来了。它是不可见的TCP堆栈的内部,但是TCP介绍有保证的递送,这也意味着该服务器不能发送数据的速度比在该客户端处理它们率。

其他提示

TCP具有流量控制和它自动发生。阅读关于它在 http://en.wikipedia.org/wiki/Transmission_Control_Protocol#Flow_control

当管填充由于流量控制,服务器I / O插座的写操作将不会完成,直到流量控制被releaved。

服务器在5.0Mb写入数据/ S,但如果你的客户是这里的瓶颈,那么服务器在“已发送缓冲区”的数据之前等待完全发送到客户端,或足够的空间被释放,以投入更多数据

至于你说的是重量轻客户能够接受在5.0Mb / s,则这将是后接收操作在客户端,你必须检查。如果是接收的数据,然后对其进行处理你读更多的数据之前,那么这可能是瓶颈。

这是更好地异步接收数据,并尽快一个接收完成后,要求客户套接字重新开始接收数据,同时您处理在一个单独的线程池线程接收到的数据。这样,你的客户永远是可用于接收进来的数据,并且服务器可以全速发送。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top