![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
leonneon_89 |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 20 Регистрация: 5.4.2013 Пользователь №: 3779 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
В общем немного о программе.
Есть клиент, который выполняет функции: 1. Отправлять запрос серверу. 2. Отправлять сообщения серверу. 3. Получать сообщения от сервера. Есть сервер, выполняющий функции: 1. Он получает сообщения от клиента производит действия на сервере, отсылает ответ. 2. Сам посылает сообщения клиенту. Программа работает в таком режиме. Устанавливаем соединение, а дальше посылаем и принимает сообщения от сервера, после выхода из программы закрываем соединение. Вся передача сообщений происходит в одном сокете. Сервер состоит из clientsocket.h - наследуется от QTcpSocket в котором производятся вычисления, server.h - наследуется от QTcpServer переопределяет incomingConnection и главной функции. На сервере clientsocket.cpp используем QTimer для посылки самостоятельных сообщений клиенту. slot для отправки сообщений.
Так же, там есть функция отправки ответа на сообщения клиента.
Вообщем у меня возник вопрос. Когда клиент посылает много сообщений серверу. Мне кажется сервер иногда не успевает обрабатывать, все полученные сообщения от клиента и отсылает только некоторые из них, из за этого клиент работает не корректно. Есть предположение что сервер не успевает записывать данные в сокет, так как он в то же время посылает уровень сигнала клиенту. Я на сервере используются две функции write(). Как мне избавится от такой проблемы, чтобы сервер принимал все сообщения от клиента и записывал все ответы, и в то же время посылал уровень сигнала в виде сообщения? |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 26.6.2025, 15:45 |