Я работаю над клиент-серверным приложением (используя qt для tcp). Клиенты должны отправлять около 15 сообщений в секунду на сервер. Проблема заключается в следующем:
сообщения от клиентов получены группами. Я имею в виду: , когда я получаю сигнал readyRead()
, и я читаю данные из сокета, в буфере есть несколько сообщений.
Этот курс вызывает отставание в системе.Qt TCP/чтение нескольких клиентов
Я попытался поместить входящие соединения в отдельные потоки (нить на соединение), но улучшения не было.
Я также попытался подняться нить, каждый раз, когда я получил readyRead()
сигнал, но опять ничего ...
НО когда я бегу ряд клиентов на том же компьютере, что и сервер, кажется, все в порядке. При использовании разных ПК по сети происходит задержка ... (в сети используется сеть со скоростью 100 Мбит/с, сообщения < 200 КБ, а ping между ПК - < 5 мсек, поэтому я не считаю, что это проблема сети).
на стороне клиента, код для записи данных довольно прост:
tcpSocket->write(message.toUtf8());
tcpSocket->waitForBytesWritten();
tcpSocket->flush();
Я также попробовал без flush()
или waitForBytesWritten()
, но то же самое ...
EDIT: Использование Qt 4.8.4 и Windows 7 и XP
У кого-нибудь есть идея, как это преодолеть?
Спасибо заранее!
Я использую qt 4.8.4 с окнами 7/XP. Можете ли вы предоставить дополнительную информацию об этом решении? Благодаря! – GSta