Hello.
**My motivations
I’m currently working on a great GPL game, “globulation2”, aviable on
savanah.
Thatfor, I need broadcasting ability in the LAN or subnet. (sening to ip
255.255.255.255)
But SDL_net does not provide the abitity to send packet to ip
255.255.255.255.
Therefore, I programmed a UNIX C++ object to allow easy broadcasing, and
it’s working fine on GNU/Linux.
(But I have some header/#define trouble on macosX and Solaris, fixed by
changing the makefile.)
Therefor it would be nicer to implements broadcasting info SDL, and
everyone could use it !
**My questions
Is anyone else interested in the broadcasting ability ?
How would you like broadcasting ability to be implemented in SDL_Net ?
Who know about OpenTransport and broadcasting ?
Who is the SDL_net responsible ?
**Technical considerations
I know about UNIX over IP programming, but not OpenTransport at all.
The problem is that you have to change the “socketDefinition” to allow
broadcasting.
This corresponds to “UDPsocket” in SDL_net.
Then I see two possiblilities:
1)Change the
UDPsocket SDLNet_UDP_Open(Uint16 port)
to
UDPsocket SDLNet_UDP_Open(Uint16 port, int broadcast)
This is cleaner toward UNIX way to see broadcast, but we loose backward
compatiblity.
2)We dynamicaly changes the SocketDefinition’s flags before and after
sending the UDP packet.
This would looks like: this is only the idea)
#define INADDR_BROADCASTING 0xFFFFFFFF
if (packets[i]->address.host=INADDR_BROADCASTING)
{
int socketDefinition=sock->channel;
char ttl=1;
setsockopt(socketDefinition, IPPROTO_IP, IP_MULTICAST_TTL, &ttl,
sizeof(ttl));
int hold=1;
setsockopt(socketDefinition, SOL_SOCKET, SO_BROADCAST, &hold,
sizeof(hold));
}
// more the recovering part after sending
**Who will do the work
If any choice is made, can programm the UNIX part of it.
But i’m looking for someone to do it for OpenTransport.
Thanks!
Luc-Olivier de Charri?re