Java 从主机名和端口构造InetSocketAddress在开头添加斜杠
我想连接到一个套接字,从属性文件中读取主机名和端口号。我尝试创建Java 从主机名和端口构造InetSocketAddress在开头添加斜杠,java,sockets,Java,Sockets,我想连接到一个套接字,从属性文件中读取主机名和端口号。我尝试创建InetSocketAddress的新实例,将其传递给socket.connect方法,但它倾向于在开头添加斜杠,因此它看起来像“/127.0.0.1”。我没有使用任何toString()。无论我传递的是“localhost”或“127.0.0.1”还是新的InetAddress(主机、端口)内部InetSocketAddress字段都设置为“/127.0.0.1”。这会导致未知后异常。 有没有一种优雅的方法来解析套接字连接的主机地
InetSocketAddress
的新实例,将其传递给socket.connect
方法,但它倾向于在开头添加斜杠,因此它看起来像“/127.0.0.1”
。我没有使用任何toString()
。无论我传递的是“localhost”
或“127.0.0.1”
还是新的InetAddress(主机、端口)
内部InetSocketAddress
字段都设置为“/127.0.0.1”
。这会导致未知后异常
。
有没有一种优雅的方法来解析套接字连接的主机地址,而无需修剪第一个字符或使用javax.net以外的其他库
先谢谢你
我用过的例子有:
socket.connect(新的InetSocketAddress(InetAddress.getByName(“localhost”).getHostAddress(),1234),超时)代码>
socket.connect(新的InetSocketAddress(“localhost”,1234),超时)代码>
socket.connect(新的InetSocketAddress(“127.0.0.1”,1234),超时)代码>
它们都会生成套接字addr=“\127.0.0.1”,仅用于toString()
的结果,该结果在内部未使用。这里没有要解决的问题。@EJP感谢您的评论。有趣的是,如果在尝试连接套接字时有catch(UnknownHostException uhe)
语句,那么它会被捕获,因为开头的斜杠(我想是这样),但是如果我对它进行注释,那么一切都会正常。这可能是我的错,因为InetSocketAddress类在内部处理它。我说的对吗?你能不能用一块手表在插座上打破它。。。?它将证明或反驳ToString是一个因素。实际上,看起来您已经这样做了。只是由于toString()
的结果,它在内部没有使用。这里没有要解决的问题。@EJP感谢您的评论。有趣的是,如果在尝试连接套接字时有catch(UnknownHostException uhe)
语句,那么它会被捕获,因为开头的斜杠(我想是这样),但是如果我对它进行注释,那么一切都会正常。这可能是我的错,因为InetSocketAddress类在内部处理它。我说的对吗?你能不能用一块手表在插座上打破它。。。?它将证明或反驳ToString是一个因素。看起来你已经这么做了。