我想连接到套接字,从属性文件中读取主机名和端口号。我尝试创建InetSocketAddress
的新实例以将其传递给socket.connect
方法,但它往往会在开头添加斜杠,因此它看起来像"/127.0.0.1"
。我没有使用任何toString()
。无论我通过"localhost"
或"127.0.0.1"
还是新InetAddress(host, port)
,addr
内的字段InetSocketAddress
都会设置为"/127.0.0.1"
。这导致UnknownHostException
。
是否有一种优雅的方法来解析套接字连接的主机地址,而无需修剪第一个字符或使用除javax.net之外的其他库?
提前谢谢
我用过的例子:
socket.connect(new InetSocketAddress(InetAddress.getByName("localhost").getHostAddress(), 1234), timeout);
socket.connect(new InetSocketAddress("localhost", 1234), timeout);
socket.connect(new InetSocketAddress("127.0.0.1", 1234), timeout);
所有这些都产生socket addr =“\ 127.0.0.1”