socketJava服务器socket。为什么IP地址是0.0.0.0,但我仍然可以远程连接?
现在,我想远程连接,我只想知道为什么服务器告诉我它没有IP地址
Server started: ServerSocket[addr=0.0.0.0/0.0.0.0,port=0,localport=13380]
相关代码:
private ServerSocket serverSocket = null;
private Thread thread = null;
private int clientCount = 0;
/**
* Constructor
*
*/
public ControlListener(int port)
{
try
{
System.out.println("Binding to port " + port + ", please wait ...");
this.serverSocket = new ServerSocket(port);
System.out.println("Server started: " + this.serverSocket);
start();
}
catch (IOException ioe)
{
System.out.println("Can not bind to port " + port + ": " + ioe.getMessage());
}
}
来自链接:http://pirate.shu.edu/~wachsmut/Teaching/CSAS2214/Virtual/Lectures/chat-client-server.html示例4是我所遵循的
# 1 楼答案
您绑定到any地址,这意味着您正在侦听所有接口。您可以接受来自服务器上任何已定义接口的连接,包括本地主机和您定义的任何IP地址(如果您是多主机)
您可以只绑定到127.0.0.1,并且只接受来自本地主机的连接。您可以绑定到特定的IP地址,并且只接受该接口上的连接
# 2 楼答案
0.0.0.0表示正在使用所有IP。如果您试图远程连接,请确保打开防火墙和/或路由器中使用的端口
# 3 楼答案
这是一个通配符,表示套接字将接受主机的每个网络适配器上的请求
您可以通过在构建时定义专用网络地址来限制这种行为