Проблема с асинхронным сокетом в приложении в стиле метро (отправить вызов функции перед подключением)

Я создал сервер дейтаграмм в стиле метро и клиент, используя Windows.Networking.Sockets. я делаю код на c++

Затем я попытался подключиться и отправить данные с клиента на сервер.

но проблема, с которой я столкнулся, заключается в том, что, поскольку приложение Windows Metro полностью асинхронно, мое приложение начинает отправлять данные до завершения соединения.

мне нужен подход, с помощью которого моя функция отправки будет отправлять данные после завершения соединения.

msdn предоставил пример кода для клиентского сервера, но они используют кнопку для отправки данных, которая требует времени для работы, пока соединение установлено. Вот почему приложение работает хорошо.

но я пытаюсь установить связь между клиентом и сервером в основном коде без использования кнопки отправки.


person user1531552    schedule 01.08.2012    source источник


Ответы (1)


Делая здесь некоторые предположения, потому что вы не предоставили никакого кода, но вам следует использовать продолжение вашего DatagramSocket.ConnectAsync create_task. Если вы поместите данные отправки в task::then, у вас не будет проблем с асинхронным характером вызова. См. эту статью о работе с асинхронностью в C++ Windows 8. Программы. Здесь также много отличных примеров.

person JP Alioto    schedule 01.08.2012