【发布时间】:2013-03-02 21:43:15
【问题描述】:
我正在开发一个客户端/服务器应用程序(将 qt 用于 tcp)。
客户端每秒必须向服务器发送大约 15 条消息。
问题是这样的:
来自客户端的消息是分组接收的。我的意思是:
当我收到readyRead() 信号并从套接字读取数据时,缓冲区中有多个消息。
这当然会导致系统滞后。
我尝试将传入连接放在单独的线程中(每个连接线程),但没有任何改进。
每次收到readyRead() 信号时,我也尝试启动一个线程,但又没有...
但是当我在与服务器相同的 PC 上运行多个客户端时,一切似乎都正常。在网络上使用不同的电脑时,会出现延迟... (使用的网络是 100Mbps LAN,消息
在客户端,写入数据的代码非常简单:
tcpSocket->write(message.toUtf8());
tcpSocket->waitForBytesWritten();
tcpSocket->flush();
我也尝试过不使用flush() 或waitForBytesWritten() 但还是一样...
编辑:使用 Qt 4.8.4 和 Windows 7 和 XP
有人知道如何克服这个问题吗?
提前谢谢!
【问题讨论】: