У меня есть клиент-серверное приложение, в котором клиент находится на устройстве Windows Mobile 6, написано на C ++, а сервер - на полной Windows и написан на C #.
Первоначально мне это было нужно только для отправки сообщений от клиента на сервер, а сервер только когда-либо отправлял обратно подтверждение того, что он получил сообщение. Теперь я хотел бы обновить его, чтобы сервер действительно мог отправлять сообщение клиенту для запроса данных. Поскольку в настоящее время он настроен так, что клиент находится в режиме приема только после того, как он отправляет данные на сервер, это не позволяет серверу отправлять запрос в любое время. Придется ждать данных клиента. Моей первой мыслью было бы создать еще один поток на клиенте с отдельным открытым сокетом, который будет прослушивать запросы сервера ... точно так же, как сервер уже относится к клиенту. Есть ли способ в одном потоке и с использованием одного и того же сокета для всего сервера отправлять запросы в любое время?
Можете ли вы использовать что-то для эффекта WaitForMultipleObjects()
и передать ему буфер приема и событие, которое сообщает ему, что есть данные для отправки?