ребята, помогите девушке ... у меня есть такое тз: Написать одно приложение, которое при запуске проверяет наличие уже запущенных серверов в локальной сети и при наличии таковых позволяет присоединиться к любому из них в качестве клиента. В противном случае при отсутствии уже запущенных серверов позволяет запустить данное приложение в качестве сервера. В данном случае одно и тоже приложение является как сервер, так и клиент приложение. Для проверки функционирования реализовать возможность отправлять сообщения от одного клиента другим через сервер. Реальзовать через WSAAsyncSelect, при запуске посылать широковещательный UDP запрос для проверки наличия уже запущенного сервера, для приёма\отправки сообщений использовать протокол TCP. в сокетах вроде соображаю, но как всё это сделать через WSAAsyncSelect сообразить немогу, а и ещё - делать в Console App помогите пожалуйста, буду очень благодарна
Да я тоже согласен раз уж так извращаться то с Евентами (я в своих использую прсото select ) Вот тебе прсотой примерчик использования: Создаешь вначале объект событий.... SOCKET s; WSANETWORKEVENTS netev; WSAEVENT wsae = WSACreateEvent(); Далее выбираешь те события на которые этот объект будет реагировать.... События из разряда FD_* и тд (полный список можно в мсдн поглядеть): Для примера выбирем когда у нас появяться данные от клиента... WSAEventSelect(s, wsae, FD_READ); Далее ждем пока обхект у нас просигнализирует... WSAWaitForMultipleEvents(1, &wsae, TRUE, INFINITE, FALSE); Далее смотрим что за событие произошло ) WSAEnumNetworkEvents( s, wsae, &netev ); if(netev.lNetEvents & FD_READ) printf("use recv()\n"); ну вот
Хотя можно создать фейк диалог который и будет принимать сообщения... Но помоему дурацкое тогда ТЗ проще уж с евентами или прсото с селект....
>>забыла - язык реализации с++ А ты на ассемблере выкладываешь.... может быть она(?) не поймет да и довал я пример уже как евенты использывать
так, уже немного разобралась, теперь вот какой вопрос - как связать скрытое окно, которое обрабатывает события сокетов, и консольку, в которой должны отображаться пришедшие данные и вводиться сообщения на отправку
@A_Must_Loll Видемо такой же тяжелый случай как и ник.... -+-+-+-+ мм а разве не прокатит вывод в консоль ... из процедуры обрбаотки сообщений окна?..... ведь есть консолька.... же
Я обработку ввода-вывода с консоли обычно выделяю в отдельный поток. Хотя в данном случае наверное надо выделить в поток цикл обработки сообщений от окон.
A_Must_Loll C самомнением всё в рамках нормы... ибо что не знаю не говорю а шутки шутить на удаф.ком п.с: извеняюсь за оффтоп