Sending/Receiving UDP Data Over Internet


We would like to send UDP data from a USRP over the internet to a remote
computer. The setup on the host side is:

USRP Source → UDP Sink

And on the client side:

UDP Source → Throttle → WX GUI FFT Sink

This setup has worked on a local network using the client’s IP address
“” with the UDP sink and UDP source. However, when using
host’s public static IP “”, Gnuradio throws the
following error:

/Traceback (most recent call last):
File “/home/matias/Documents/”, line 116, in
tb = top_block()
File “/home/matias/Documents/”, line 76, in init
self.blocks_udp_source_0 = blocks.udp_source(gr.sizeof_gr_complex*1,
“”, 9000, 1472, True)
line 1974, in make
return _blocks_swig5.udp_source_make(*args, **kwargs)
RuntimeError: bind: Cannot assign requested address/

Does anyone know how to resolve this? We are using GNU Radio 3.7.3 on a
virtual Ubuntu 12.04 LTS.

Matias Ponce

CellAntenna Engineer

CellAntenna Corporation

12453 NW 44th Street
Coral Springs, FL 33065

Office: 954-340-7053 ext 10251
E-mail: [email protected]

View this message in context:
Sent from the GnuRadio mailing list archive at

Hi Matias,
usually, binding ports over 9000 should be possible for normal users,
but if you already made sure that your address is correct and there is
nothing else occupying port 9000, I’d check with the Ubuntu folks if
there is something like seLinux blocking such things.

As a side note, never ever add a throttle block to a flowgraph which has
a sample rate determined by a hardware device. There’s only two things
that can happen:

  1. Either your hardware rate matches the throttle block exactly or is
    lower: The throttle block, aside from adding unwanted latency, doesn’t
    have any effect
  2. Your hardware rate is higher than your throttle rate: a backlog of
    samples will build up, up to the point where something (in your case,
    the UDP stack) will have to drop data.


The error you are getting is possibly due to your host machine using a
address to access the internet via NAT (network address translation).
this is the case then setting your receive ip address to ‘’ in
GRC ‘UDP Source’ should do the trick. This setting tells the ‘UDP
to listen on all network interfaces.


Ettus R. Technical Support
Email: [email protected]