Небольшая преамбула: решил помочь "младшему" с курсовым. Раньше с Winsock никогда не работал. Да и вообще программирование для PC мне по стольку по скольку. Но тем не менее
Проблема: есть несколько компутарафф, есть у них "логический" сервер (по выполняемым функциям). Но с точки зрения winsock - он такой же клиент как и все остальные, т.е он находится не в пасивном прслушивании, но и довольно часто сам инициирует обмен данными. Как это лучше сделать. Первое, что пришло в голову для сделать два канала - один для передачи команд, другой для данных. Сервер прослушивает канал передачи данных и активно атакует по каналу передачи команд. Клиенты же наооборот. Получилось, работает. Но выглядит все это как-то Монструально, неэстетично.
Начал изучать book'и. Почти во всех книгах приведен пример эхо-сервера, который мне нафиг не нужен. А еще мне не нравится перечисления во многих книгах: для этой цели вы можете использовать это, это и еще вот это (например, select, WSAAsyncSelect, WSASelectEvent, порты завершения и т.п.) А я так не люблю. Хотелось бы ясности: напряжение измеряем вольтметром, силу тока - амперметром, а для win32 - используем то-то. И "смотри не перепутай, Кутузов". А тут - полный ??? Как лучше поступить в ситуации, когда необходимо равноправие в сети? Можно ли, например, работать когда есть один канал и ни на одной машине не сделан bind/listen или наоборот на всех машинах сделан bind/listen?
Что посоветуете? Обязательное условие - WinAPI и никаких классов/компонентов сторонних разработчиков.
|