gpt4 book ai didi

Java Socket - 具有指定地址的 UnknownHostException

转载 作者:太空宇宙 更新时间:2023-11-04 14:02:12 25 4
gpt4 key购买 nike

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

首先,我获取我的 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 

如果我不指定任何地址(我假设本地主机)一切正常。但是如果我指定一个地址(我需要这样做,因为我必须从 LAN 上的客户端服务器发送信息),我就会得到这个。

有人可以帮助我吗?

最佳答案

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

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

关于Java Socket - 具有指定地址的 UnknownHostException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29199515/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com