By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
432,385 Members | 847 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 432,385 IT Pros & Developers. It's quick & easy.

UDP broadcast over a specific interface

P: n/a
I am trying to send UDP broadcast packets over a specific interface
and I
am having trouble specifying the interface:

host='192.168.28.255'
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('',0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF,
socket.inet_aton(host))

socket.error: (49, "Can't assign requested address")

What am I doing wrong? How can I force my broadcast packets to go out
a specific interface?

TIA!
-larry

Jul 19 '07 #1
Share this Question
Share on Google+
1 Reply


P: n/a
On Jul 19, 7:09 am, Jean-Paul Calderone <exar...@divmod.comwrote:
On Thu, 19 Jul 2007 12:32:02 -0000, "Larry.Mart...@gmail.com" <larry.mart...@gmail.comwrote:
I am trying to send UDP broadcast packets over a specific interface
and I
am having trouble specifying the interface:
host='192.168.28.255'
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(('',0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)
sock.setsockopt(socket.IPPROTO_IP, socket.IP_MULTICAST_IF,
socket.inet_aton(host))
socket.error: (49, "Can't assign requested address")
What am I doing wrong? How can I force my broadcast packets to go out
a specific interface?

IP_MULTICAST_IF is for multicast UDP, which doesn't have anything to do
with broadcast UDP.

Try just doing this, instead:

host='192.168.28.255'
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((host,0))
sock.setsockopt(socket.SOL_SOCKET, socket.SO_BROADCAST, 1)

You shouldn't need to mess with anything beyond that.
Thanks! This works perfectly.

-larry

Jul 19 '07 #2

This discussion thread is closed

Replies have been disabled for this discussion.