Синхронизация TCP-сообщений - PullRequest
1 голос
/ 18 октября 2011

У меня минимум 3 TCP клиента, у каждого есть Поток. Я отправляю сообщения и жду ответа, но иногда мне приходится ждать ответа от всех клиентов, это зависит от того, какое сообщение отправило сервер. Я уже сделал, чтобы отправлять сообщения клиентам и получать, но когда мне пришлось ждать ответа другого клиента, я не мог сделать это до сих пор.

1 Ответ

1 голос
/ 18 октября 2011

Поскольку вы не упомянули свою среду / язык, я предполагаю, что C # /. NET 4

Для каждого клиента необходим механизм, чтобы сигнализировать о получении ответа.Обычно это делается с помощью AutoResetEvents: каждый клиент отправляет свой ответ обратно на сервер.Сам сервер может извлечь из ответа (или любого другого свойства, например, соединение) с отправившим его клиентом.Затем он устанавливает соответствующее AutoResetEvent.

Поток, который ранее инициировал отправку сообщения, может впоследствии ждать установки всех AutoResetEvents.

...