如何查询远程计算机的名称,如何解析远程计算机名称以获取它在java中的IP地址...

博主在尝试通过Java程序实现在JTextField中输入远程计算机名,JTextArea中输入消息,点击发送后解析为IP并发送。遇到DNS解析问题,寻求解决远程计算机名到IP转换的方法,以及可能的替代方案。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我正在尝试提供一个程序,将计算机从A发送到计算机B。两台计算机都必须有我的java程序的副本。这需要在JTextField对象中输入远程计算机B的名称,在JTextArea对象中输入消息,然后单击按钮发送。

我的程序应该能够将给定的计算机名解析为ip地址,以便将IP地址作为参数包含在我的DatagramPacket构造函数中。

我尝试使用以下方法进行解析,但我得到javax.naming.CommunicationException。

String clientname="user";

Hashtable env=new Hashtable();

env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.dns.DnsContextFactory");

env.put(Context.PROVIDER_URL,"dns://www.google.com");

DirContext con=new InitialDirContext(env);

Object obj=con.lookup("clientname");

抛出异常

javax.naming.CommunicationException: DNS error [Root exception is java.net.SocketTimeoutException: Receive timed out]; remaining name 'user'

at com.sun.jndi.dns.DnsClient.query(DnsClient.java:300)

at com.sun.jndi.dns.Resolver.query(Resolver.java:81)

at com.sun.jndi.dns.DnsContext.c_lookup(DnsContext.java:286)

at com.sun.jndi.toolkit.ctx.ComponentContext.p_lookup(ComponentContext.java:544)

at com.sun.jndi.toolkit.ctx.PartialCompositeContext.lookup(PartialCompositeContext.java:177)

at com.sun.jndi.toolkit.ctx.PartialCompositeContext.lookup(PartialCompositeContext.java:166)

at javax.naming.InitialContext.lookup(InitialContext.java:411)

Caused by: java.net.SocketTimeoutException: Receive timed out

at java.net.DualStackPlainDatagramSocketImpl.socketReceiveOrPeekData(Native Method)

at java.net.DualStackPlainDatagramSocketImpl.receive0(DualStackPlainDatagramSocketImpl.java:121)

at java.net.AbstractPlainDatagramSocketImpl.receive(AbstractPlainDatagramSocketImpl.java:145)

at java.net.DatagramSocket.receive(DatagramSocket.java:786)

at com.sun.jndi.dns.DnsClient.doUdpQuery(DnsClient.java:411)

at com.sun.jndi.dns.DnsClient.query(DnsClient.java:203)

... 7 more

问题

我怎样才能实现我的目标因为在我看来,java DNS服务提供商似乎只能解析域名而不是个人计算机名称?我一直在努力奋斗3天。

感谢任何帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值