To broadcast on 255.25.255.255, use connect() and then send().
Connect() will set SO_BROADCAST option at the socket level.

--
francois.pie...@overbyte.be
The author of the freeware multi-tier middleware MidWare
The author of the freeware Internet Component Suite (ICS)
http://www.overbyte.be


----- Original Message ----- From: "Arno Garrels" <arno.garr...@gmx.de>
To: <twsocket@elists.org>
Sent: Thursday, December 23, 2010 12:20 PM
Subject: [twsocket] UDP broadcast error "Permission denied"


Hi,

When I try a SendTo() address "255.255.255.255" with an UDP listening
TWSocket I get error WSAEACCES "Permission denied", is this normal?.
SendTo() "192.168.1.255" works, Firewall is turned off.

procedure TMyServer.UdpListen;
begin
 if FUDP = nil then
   FUDP := TWSocket.Create(nil);
 FUDP.Proto             := 'udp';
FUDP.Addr := '0.0.0.0'; // listening on one interface doesn't change it.
 FUDP.Port              := '30003';
 FUDP.OnDataAvailable   := UdpDataAvailable;
 FUDP.ReuseAddr         := TRUE;
 FUDP.Listen;
end;

procedure TMyServer.SendHelo;
var
 Dst    : TSockAddrIn;
 DstLen : Integer;
 Buf    : AnsiString;
begin
 FillChar(Dst, SizeOf(Dst), 0);
 Dst.sin_family      := AF_INET;
 Dst.sin_port        := WSocket_htons(StrToIntDef(FPort, 30003));
 Dst.sin_addr.S_addr := u_long(INADDR_BROADCAST);
 Buf := 'Helo';
 if FUDP.SendTo(Dst, DstLen, PAnsiChar(Buf), Length(Buf) + 1) = -1 then
   raise Exception.Create(WSocketErrorDesc(WSocket_WSAGetLastError));
end;

--
Arno Garrels
--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

--
To unsubscribe or change your settings for TWSocket mailing list
please goto http://lists.elists.org/cgi-bin/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to