Try inet_addr() before gethostbyname().

gethostbyname() is not required to accept an IP address and does not do
so on the Wii.
Don't bind to port 0 on the Wii.

Instead, a decreasing variable is used now. This should be safe, as
nothing else should be binding ports while homebrew code is running. The
only problem that could arise is when code manually binds to very high
port numbers.

This also solves the problem that getsockname() is not available on the
Wii, as we know the port now anyway.

And while we're at it, this also adds struct sockaddr_storage.