我正在尝试创建指向指定地址的套接字连接(目前,客户端和服务器是我计算机的本地连接)。
首先,我得到我的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)一切正常。但是,如果我指定一个地址(我需要这样做,因为我必须从局域网上的客户端 - 服务器发送信息)我得到了这个。
有人可以帮助我吗?
答案 0 :(得分:-1)
您正在调用的Socket
构造函数需要一个真实的主机名,它不会接受一个string
的IP地址。要传递IP地址,您必须为其创建InetAddress
,然后传递它:
InetAddress address = InetAddress.getByName("192.168.1.82");
Socket socket = new Socket(address, 4020);