Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

И снова multicast


Sla ©   (2004-01-22 17:15:00) 

Народ! Пожалуйста, подкиньте пример работы с мультикастами на Delphi! Я уже 3й месяц ищу и пытаюсь сделать, все никак не выходит. Выручайте!
Или может хотя бы подскажите немного? основные api я для этого знаю, но они в на си... а перевести я немогу ;((
заране спасибо


Sla   (2004-01-27 04:45:00) [1]

Спасибо большое ... буду пытатся.
Но многое все таки не понятно ;(
Может пример таки есть у кого нить?


Verg   (2004-01-26 11:40:00) [2]


> Rouse_ ©   (24.01.04 20:02) [8]


Может быть... Но, скорее нет, чем да...
Про это уже очень хорошо написано в книгах по сетевому программированию. Поэтому, такая статья будет просто рефератом или даже плагиатом....
Нет ни времени, и, если чесно, ни желания переписывать то, что уже написано и неоднократно.


Rouse_   (2004-01-24 20:02:00) [3]

> [7] Verg ©   (24.01.04 14:07)
Я бы посоветовал написать Вам статью...
Дело в том что вопросы по данному сабжу возникают постоянно...
С моей стороны почти закончена статья по мэйлслотам (первое место по вопросам в сетях)...
Если готовы содрудничать... адреса знаете...


Verg   (2004-01-24 14:07:00) [4]

Для полного счастья можно

val := 0;
len := sizeof(val);
setsockopt (sock, IPPROTO_IP, IP_MULTICAST_LOOP, @val, len);


Это для того, чтобы отправленные тобой на мультикастовый адрес датаграммы не прилетали тебе же самому (эхоподавление :))).


Verg   (2004-01-24 14:03:00) [5]

1. Создаешь сокет. Сокет должен быть либо SOCK_DGRAM либо SOCK_RAW. sock = socket(AF_INET, SOCK_RAW, <Нужный протокол>);
2. Обязательно биндишь  его (bind) на нужный порт для DGRAM или на нулевой для RAW.
3. Подписываешь его на MULTICAST
     Fillchar(Mreq, sizeof(Mreq), 0);
     mreq.imr_multiaddr.s_addr := mcast_addr;// 224.0.0.9, например
     mreq.imr_interface.s_addr := if_addr; //212.212.212.212, например
   
     setsockopt( sock,IPPROTO_IP, IP_ADD_MEMBERSHIP,
   @Mreq,sizeof(Mreq));

Где Mreq - это структура типа
TIPMreq = packed record
     imr_multiaddr : TInAddr; // Адрес мультикаста
     imr_interface : TInAddr; // Адрес сетевого интерфейса (сетевой карточки)
end;


Ну и все, собственно, читаешь/пишешь из/в него как обычно ты это делаешь сокетом.


Alex Konshin   (2004-01-24 10:20:00) [6]

Зачем подробнее, потом еще будут обвинять меня в нескромности...
:-)
http://home.earthlink.net/~akonshin/index.htm


Sla   (2004-01-24 04:45:00) [7]

>Насчет перевода: мой unit winsock2 уже скачал?
Нет... расскажите подробнее пожалуйста!


Alex Konshin   (2004-01-23 23:02:00) [8]

Насчет перевода: мой unit winsock2 уже скачал?


Sla   (2004-01-23 17:35:00) [9]

Читал... не понятно :((
А конкретно не выходит подключение к группе и ловля пакетов...
тоесть даже не то что бы не выходит, незнаю как сделать... там в примерах на си написано ;(


Verg   (2004-01-22 17:56:00) [10]

По-конретнее бы.
Что именно не выходит.
Чтиал ли это:

http://support.microsoft.com/default.aspx?scid=http://support.microsoft.com:80/support/kb/articles/q131/9/78.asp&NoWebContent=1


Наверх

Титульная страница Поиск, карта сайта Написать письмо