Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.04.04;
Скачать: CL | DM;

Вниз

И снова multicast   Найти похожие ветки 

 
Sla ©   (2004-01-22 17:15) [0]

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


 
Verg ©   (2004-01-22 17:56) [1]

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

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


 
Sla ©   (2004-01-23 17:35) [2]

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


 
Alex Konshin ©   (2004-01-23 23:02) [3]

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


 
Sla ©   (2004-01-24 04:45) [4]

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


 
Alex Konshin ©   (2004-01-24 10:20) [5]

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


 
Verg ©   (2004-01-24 14:03) [6]

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;


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


 
Verg ©   (2004-01-24 14:07) [7]

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

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


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


 
Rouse_ ©   (2004-01-24 20:02) [8]

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


 
Verg ©   (2004-01-26 11:40) [9]


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


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


 
Sla ©   (2004-01-27 04:45) [10]

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



Страницы: 1 вся ветка

Текущий архив: 2004.04.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.022 c
1-1079085604
FC
2004-03-12 13:00
2004.04.04
скрыть иконку в systray


14-1078354077
Orik_Dreammy
2004-03-04 01:47
2004.04.04
Книгу надо...блин...ОЧЕНЬ!!!


6-1071939663
KoLoB
2003-12-20 20:01
2004.04.04
Разорвать соединение


3-1078497021
mops
2004-03-05 17:30
2004.04.04
Порушилась база???


1-1079694625
*light*
2004-03-19 14:10
2004.04.04
Обработка нажатия нескольких кнопок