On Sat, 19 Dec 2015 13:26:53 +0100, Sönke Ludwig wrote:

You definitely need to use either connect, or pass a destination
address to send. The address passed to listenUDP just defines the
network interface on which UDP packets will be received.

Oh, that makes sense now. It seems to be working fine with connect() now. I'm not sure why send(data, address) was producing an errno 22, but for what I'm doing, connect() works better than the 2-argument send() anyway.