WinSock Client C - PullRequest
       14

WinSock Client C

0 голосов
/ 11 ноября 2009

У меня есть клиент, использующий select (), чтобы проверить, есть ли что-то, что должно быть получено, в противном случае время ожидания истекло, и пользователь может отправить (). Который работает достаточно хорошо. Тем не менее, программа блокирует ожидание пользовательского ввода, поэтому она не может выполнить recv () снова, пока пользователь не отправит что-либо. Мне не очень повезло с использованием потоков, так как я не могу найти хороший ресурс, который показывает мне, как их использовать.

Я попытался создать два потока (используя CreateThread) для функций send и recv, которые в основном являются двумя функциями, использующими циклы while для продолжения отправки и получения. И затем два CreateThreads () оборачиваются в цикл while, потому что в противном случае он просто выпал.

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

Ответы [ 2 ]

2 голосов
/ 11 ноября 2009

Не можете найти хороший ресурс по программированию сокетов? Ба. Прочитайте Библию:

0 голосов
/ 11 ноября 2009

это имеет сильное чувство задания работы ...

Я не слишком увлекаюсь программированием Windows, но когда я делал это раньше, раньше была kbhit (вероятно) функция, которая позволяла вам проверять, отправлял ли пользователь какие-либо входные данные. Вы можете найти что-то похожее и попробовать неблокирующую проверку ввода пользователя, прежде чем снова начать свой выбор.

После этого вы можете получить это без многопоточности
(если только у вас нет , чтобы использовать это).

...