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

Вниз

Как создать BROADCAST сообщение?   Найти похожие ветки 

 
serd_hhc ©   (2002-12-01 04:59) [0]

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

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-01 11:31) [1]

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


 
serd_hhc ©   (2002-12-02 05:14) [2]

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

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


 
Digitman ©   (2002-12-02 08:33) [3]

>он равен -1.

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


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


 
serd_hhc ©   (2002-12-02 20:42) [4]

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

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


 
Malder ©   (2002-12-02 23:09) [5]

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


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


> Я перепутал


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


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


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


 
Malder ©   (2002-12-03 18:57) [7]

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


 
Morfein ©   (2002-12-03 22:34) [8]

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


 
Digitman ©   (2002-12-04 08:19) [9]

>Morfein

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


 
Malder ©   (2002-12-05 18:20) [10]

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


 
Digitman ©   (2002-12-06 08:36) [11]

>Malder

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

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



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

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

Наверх




Память: 0.49 MB
Время: 0.018 c
14-97040
Dimedrol
2003-01-08 20:57
2003.01.30
Win2000 не


14-96974
NATURALLY BORN PHILOSOPHER
2003-01-08 23:36
2003.01.30
Бродячие торговцы - кто они?...


14-97009
Дмитрий К.К.
2003-01-13 06:54
2003.01.30
Именинники 13 января


3-96582
Борис
2003-01-05 13:36
2003.01.30
IBUpdateSQL Хитрый запрос.


6-96911
virginkiller
2002-12-02 13:38
2003.01.30
ClientSocket/ServerSocket