Socket.connect() to 0.0.0.0: Windows vs. Mac

后端 未结 1 890
长发绾君心
长发绾君心 2020-12-18 06:14

Imagine the following code:

String hostName = \"0.0.0.0\";
int port = 10002;
int timeout = 5000;
Socket socket = new Socket();
socket.connect(new InetSocketA         


        
相关标签:
1条回答
  • Just in case somebody else stumbles upon this question, I am answering it.

    Unfortunately, connecting to the any address is not allowed on Windows.

    The Winsock function connect will return the error code WSAEADDRNOTAVAIL [The remote address is not a valid address (such as INADDR_ANY or in6addr_any)], as stated at the Windows API Documentation:

    If the address member of the structure specified by the name parameter is filled with zeros, connect will return the error WSAEADDRNOTAVAIL.

    So without using any localhost address, I think what you are trying to do will not be possible on Windows (Though I wonder if the Unix behavior is a bug or intentional.).

    I would suggest setting up more loopback interfaces, as Mark Reed suggested in his comment.

    0 讨论(0)
提交回复
热议问题