Add a thread for each connection to receive results.
Hand `recvfrom` the real buffer.
Reset socket when closing.
Make decode the reverse of encode.
Pass responses to the correct cursor.