【发布时间】:2011-09-27 21:36:58
【问题描述】:
我正在尝试使用 ServerSocket 在 PC 中运行服务器应用程序,为此我尝试获取系统的 IP 地址来启动服务器并等待客户端连接,因为我已经写过了,
InetAddress inetAddress = InetAddress.getLocalHost();
ServerSocket serverSocket;
if (serverSocket == null)
serverSocket = new ServerSocket(1000, 0, inetAddress);
Socket socket=serverSocket.accept();
它在 Window 操作系统中正常工作,当我在 Unix 操作系统中尝试此应用程序时,它对我不起作用,我尝试使用打印 IP 地址,
System.out.println(inetAddress.getHostAddress);
在 Windows 操作系统中打印正确的 IP 地址,但在 Unix 操作系统中,我得到的是
127.0.0.1
所以服务器不工作,我没有在Mac OS中尝试过,所以有没有办法在任何操作系统中使用系统的默认IP地址启动服务器。
谢谢。
【问题讨论】:
-
正常的循环。 127.0.0.1 总是指你的本地主机。
-
那是什么意思?是lo的地址吧?相反,我希望 eth0 的地址来启动服务器。
-
查看这个帖子how-to-get-the-ip-of-the-computer-on-linux-through-java它可能会有所帮助。