mic*_*ael 7 c++ sockets windows client-server winsock2
我有一个用C++实现的客户端服务器体系结构,在Windows 7下使用阻塞套接字.一切都运行良好,达到一定的负载水平.如果有几个客户端(例如> 4)接收或发送兆字节数据,则有时与一个客户端的通信会冻结大约5秒钟.在这种情况下,所有其他客户端都按预期工作.
缓冲区大小为8192字节,服务器端的日志记录如下:
TimeStamp(s.ms) - 接收的字节数
...
1299514524.618 - 8192
1299514524.618 - 8192
1299514524.618 - 0004
1299514529.641 - 8192
1299514529.641 - 3744
1299514529.641 - 1460
1299514529.641 - 1460
1299514529.641 - 8192
...
似乎在5秒内只能读取4个字节.此外,我发现冻结时间总是大约5秒 - 从不4或更少,从不6或更多...
有任何想法吗?
最好的祝福
迈克尔
我在高负载的情况下遇到了这个问题:最后一个 TCP 数据包有时在倒数第二个之前到达,因为没有为包排序定义默认堆栈,这种混乱导致收到与您所描述的类似的结果。
采用的解决方案是:将负载分布在更多服务器上
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |