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