Как послать широковещательный UDP пакет?

Материал из DRKB


procedure TMainForm.FormCreate(Sender: TObject);
var
  Init: TWSAData;
  SockOpt: BOOL;
  Sock: TSocket;
  Target: TSockAddrIn;
begin
  WSAStartup($101, Init);
  Sock := Socket(PF_INET, SOCK_DGRAM, IPPROTO_UDP);
  SockOpt := TRUE;
  SetSockOpt(Sock, SOL_SOCKET, SO_BROADCAST, PChar(@SockOpt), SizeOf(SockOpt)) ;
  Target.sin_port := htons(8167); // номер порта
  Target.sin_addr.S_addr := INADDR_BROADCAST;
  Target.sa_family := AF_INET;
  SendTo(Sock, Data, DataBytes, 0, Target, SizeOf(Target));
  WSACleanup;
end;


Source: http://forum.sources.ru
ID: 03549