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

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

Как создать BROADCAST сообщение? [D6, Win95/98, WinME, NT4, Win2k, WinXP]


serd_hhc ©   (2002-12-01 04:59:00) 

Уважаемые мастера, объясните мне, пожалуйста, как создать многоадресное сообщение? А то мой код не пашет...

var
WSAData:TWSAData;
addr:sockaddr_in;
sock:TSocket;
buf:array[0..15] of char;
gh: PChar;
begin
WSAStartup(MakeWord(1,1), WSAData);
Writeln("[Initializing]");
sock:=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);

addr.sin_addr.S_addr:= INADDR_BROADCAST;
addr.sin_family := AF_INET;
addr.sin_port := htons(3114);

gh:=PChar(inet_addr("255.255.255.0"));
if setsockopt(sock,SOL_SOCKET,SO_BROADCAST,gh,sizeof(gh))<>0 then
Writeln("[BROADCAST disabled :(]");
Writeln("[UDP client, port 3114]");
buf:="1";
while buf<>"" do
begin
Write("= Please enter buffer to send: ");
Readln(buf);
sendto(sock,buf,sizeof(buf),0,addr,sizeof(addr));
Writeln("[Data has been send]");
end;
closesocket(sock);
WSACleanUp;
end.

пишет, что "[BROADCAST disabled :(]"...


Digitman   (2002-12-06 08:36:00) [1]

>Malder

Ноги, очевидно, растут из архитектуры адресации удаленных интерфейсов в IP-протоколе версии 6

см.
http://book.itep.ru/4/44/ip6_4411.htm#point17


Malder   (2002-12-05 18:20:00) [2]

Люди. Может все таки скажите что такое MULTYCAST.
Может вы считаете, что это оффтопик ? Тогда я новую ветку сделаю =)


Digitman   (2002-12-04 08:19:00) [3]

>Morfein

Не занимайся ерундой) .. WSAGetLastError() никогда не вернет ошибки, ибо все что она делает - считывает и возвращает значение потокозависимой внутренней переменной, хранящей код последней возникшей ошибки (если она вообще была)


Morfein   (2002-12-03 22:34:00) [4]

2 Digitman : Интересно, а если внутри функции WSAGetLastError() произойдёт ошибка, что она вернёт в этом случае?


Malder   (2002-12-03 18:57:00) [5]

Разъясните что такое MULTYCAST ?


Digitman   (2002-12-03 08:18:00) [6]


> Я перепутал


Ну так - где ? Где код ошибки-то ? Какой он в действительности ?


> говорят, что он сеть меньше грузит


Ерунда полная. К тому же MULTYCAST - понятие несколько из другой оперы.


Malder   (2002-12-02 23:09:00) [7]

Разъясните что такое MULTYCAST ?


serd_hhc   (2002-12-02 20:42:00) [8]

Я перепутал, с числом, которое возвращает setsockopt... сорри...

Так говорят, что он сеть меньше грузит, удобнее :))


Digitman   (2002-12-02 08:33:00) [9]

>он равен -1.

WSAGetLastError() не может возвращать такого кода ошибки, не выдумывай


Для каких целей тебе нужен MULTYCAST ?


serd_hhc   (2002-12-02 05:14:00) [10]

он равен -1... это ладно... я ошибся... надо было
var gh: boolean;
...
gh:=true;
setsockopt(sock,SOL_SOCKET,SO_BROADCAST,@gh,sizeof(@gh));
...

... с этим я рахобрался, но вот как быть с не с BROADCAST, а MULTYCAST сообщениями?
как их создать???


Digitman   (2002-12-01 11:31:00) [11]

чему равен результат вызова WSAGetLastError() сразу же за вызовом отказавшей ф-ции setsockopt() ?


Наверх

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