The problem is that when recvfrom() is called in readIt() and flushIt(), the IP address and port of the remote sender will replace the values in tty->farAddr.oa.sa. This means that the next time octetWrite() is called, it will call sendto() using the address of the last responder, not the address that was originally specified when creating the port. I don’t think this is the correct behavior. The solution is to use a local osiSockAddr variable to receive the sender’s address information in readIt() and flushIt(), not tty->farAddr.oa.sa.