![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как создать 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() ?