Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Сети > Широквещательный UDP


Автор: MaXL 13.8.2006, 16:06
    Пишу программу для локалки. Нужно послать широковещательный UDP пакет, ну к примеру в сеть 192.168.0.1 - 192.168.0.255 Так вот как это реализовать на winsock2 не могу. Поискал на форуме, но там вс е примеры используют первую версию winsock.
    Поискал в нете, нашёл описание функции WSAJoinLeaf, как я понёл можно сделать с помощью неё, но так и не разобрался как с ней работать.
Делаю так:
Код

 clientaddr.sin_family:=AF_INET;
 clientaddr.sin_port:=htons(PORT);
 ClientSocket:=WSAJoinLeaf(ClientSocket,@clientaddr,sizeof(clientaddr),0,0,0,0,JL_SENDER_ONLY);
 if ClientSocket = INVALID_SOCKET then
  ShowError(CREATESOCKET_ERROR);

и постоянно вылазиет ошибка, что тип не удалось сокет создать.
Помогите разобраться как работать с этой функцией?

Автор: Romikgy 13.8.2006, 17:22
Цитата(MaXL @  13.8.2006,  15:06 Найти цитируемый пост)
но там вс е примеры используют первую версию winsock

А чем не подходит?

Автор: MaXL 13.8.2006, 17:42
Потомучто нужно вторая, да и просто хочеться узнать чо это такое и как работает, незря же ведь придумывали...

Автор: MaXL 16.8.2006, 14:08
Эх..жаль ответа так я и не нашёл, прийдёться все делать под Winsock1.

Автор: Romikgy 17.8.2006, 11:19
а нельзя ли просто послать мессагу юдп на адрес 192.168.0.255 - это и будет широковещательный пакет

Автор: MaXL 18.8.2006, 16:54
Т.е. если я пошлю мессаг на 192.168.0.255 то мессага прийдёт на все компы данной под сети?

Автор: Romikgy 18.8.2006, 18:46
да это широковещательный адресс только сокет имхо также надо перевести в широкое вещание

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)