我的代码中出现以下异常:
我无法理解这个例外的原因......
这是我的代码: {
import java.net.*;
import java.io.*;
class whois {
public static void main(String args[])throws Exception {
int c;
Socket s=new Socket("internic.net",43);
InputStream in=s.getInputStream();
OutputStream out=s.getOutputStream();
String str=(args.length==0 ? "webopedia.com" : args[0])+"\n";
byte buf[]=str.getBytes();
out.write(buf);
while((c=in.read())!=-1) {
System.out.print((char)c);
}
s.close();
}
}
}
请告诉这个例外的原因。
答案 0 :(得分:7)
简而言之:您无法从当前客户端连接端口43上的internic.net
。服务器端口不可用,防火墙阻止流量,或者客户端无法解析服务器的符号名称。
答案 1 :(得分:5)
我做了一些挖掘。端口43是WHOIS服务,您似乎应该使用“whois.internic.net”作为WHOIS服务的Internic实例的主机名。
我目前正在为whois.internic.net ...
获得“无路由主持人”我的结论是whois.internic.net上的主机和/或服务目前是不可靠的。我建议您使用“http://internic.net/whois.html”上的搜索表单。
上面的搜索表单没有提供“www.webopedia.com”的信息......因为 没有关于该域名的信息!但它有关于“webopedia.com”的信息。这对我来说很有意义:
“webopedia.com”是在某些域名注册商处注册并由“.com”DNS服务器提供服务的主域名。它有WHOIS信息。
“www.webopedia.com”是一个子域名,其DNS信息由运行“webopedia.com”的人员提供服务;见上文。
通过查看两个名称的DNS记录可以确认这一点。使用dig
或等效的Windows工具查看DNS记录。
简而言之,你的程序说实话......当它运作时。