Java Socket - 具有指定地址的UnknownHostException

时间:2015-03-22 20:32:45

标签: java sockets

我正在尝试创建指向指定地址的套接字连接(目前,客户端和服务器是我计算机的本地连接)。

首先,我得到我的IP地址(192.168.1.82)并创建一个ServerSocket

String ipAddress = "192.168.1.82"; //This is get by NetworkInterface loop
int port = 4020;
InetAddress address = InetAddress.getByName(ipAddress);
this.serverSocket = new ServerSocket(port, 50, address);

在此之后,我记录套接字连接:

String host = this.serverSocket.getInetAddress().getHostAddress();

System.out.println("Listen on " + host);

我得到:听取192.168.1.82

之后,我启动客户端连接到套接字:

Socket socket = new Socket("192.168.1.82", 4020);

这最后一个命令抛出异常:

java.net.UnknownHostException: 192.168.1.82 

如果我没有指定任何地址(我假设localhost)一切正常。但是,如果我指定一个地址(我需要这样做,因为我必须从局域网上的客户端 - 服务器发送信息)我得到了这个。

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:-1)

您正在调用的Socket构造函数需要一个真实的主机名,它不会接受一个string的IP地址。要传递IP地址,您必须为其创建InetAddress,然后传递它:

InetAddress address = InetAddress.getByName("192.168.1.82");
Socket socket = new Socket(address, 4020);