I have seen many examples where they use two sockets. One to send and one to receive. But apparently both can do it. The difference that I have seen is that one is binded and another not. Example: http://www.cs.ubbcluj.ro/~dadi/compnet/labs/lab3/udp-broadcast.html
Source: Windows Questions C++