Лучший способ отправить данные клиент-сервер - PullRequest
3 голосов
/ 14 февраля 2012

Каков наилучший способ обработки данных, которые необходимо отправить на сервер? У меня многопоточный клиент, во всех потоках есть данные, которые необходимо отправить на сервер. Но когда я запускаю сервер, иногда пакеты отправляются одновременно. Таким образом, данные не верны в то время.

Я подумал, давайте создадим стек, который будет отправляться на сервер каждые x мс. Это хороший способ сделать это?

Ответы [ 2 ]

3 голосов
/ 14 февраля 2012

Вы можете использовать структуру очереди сообщений.На сервере будет только одна очередь, и каждый раз, когда сообщение поступает в очередь, оно добавляется в конец очереди, поэтому даже сообщения отправляются одновременно с заказом.После этого обработайте сообщение в очереди, удалив сообщения из очереди.Существует много структур очереди сообщений с открытым исходным кодом, которые вы можете использовать, поэтому вам не нужно реализовывать их с нуля.Вам не нужно ждать x секунд, чтобы отправить данные на сервер в этой структуре.Это сделает вашу систему быстрее.

Надеюсь, это поможет

2 голосов
/ 14 февраля 2012

Открыть один сокет на каждый клиентский поток.Таким образом, сервер может отделиться от потока, в котором он находится, и все будет в порядке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...