I just noticed that inet_sendto does NOT call inet_send as I previously assumed, It calls sendto itself. I guess I didn't see that it didn't have inet_ before it. I, Also, Realised that this means that the fragmentation code I copied from inet_send won't work because it calls inet_send instead of inet_sendto. I, Also, Realised that, I need to add the inet_sendto arguments as well. This should fix the cannot send(): Destination address required errors.