2011-04-19 66 views
4

我尝试使用下面的代码来验证电子邮件域验证(上找到代码Proejct)套接字操作试图无法访问网络

string hostName="<hostName>"; //Ex: yahoo.com 
IPHostEntry Iphost=Dns.GetHostEntry(hostName); 
IPEndPoint endPt=new IPEndPoint(Iphost.AddressList[0],25); 
Socket s=new Socket(endPt.AdressFamily, SocketType.Stream, ProtocolType.Tcp); 

s.Connect(endPt); 

在s.Connect我收到错误:一个套接字操作试图到一个无法访问的网络。 可能的原因是什么?如何解决?我的机器上有防火墙(Comodo)。

+0

的唯一原因是,网络不可达。 – 2011-04-19 19:11:36

回答

1

计算机无法连接到已解决的地址。

看看你给的地址Dns.Resolve

Note: The Resolve method is obsolete , and replaced with GetHostEntry. e.g.:

IPHostEntry host = Dns.GetHostEntry("yahoo.com"); 
+0

更新了我的问题。我错误地复制了代码,但是在我的实际代码中确实使用了Dns.GetHostEntry(“”)。我需要检查哪些内容才能使我的计算机连接到已解决的地址?我尝试了gmail.com,hotmail.com主机名也同样错误。 – MNVR 2011-04-19 19:19:58

+0

@MNVR:这不是一个编程问题。你应该问超级用户。 – 2011-04-19 19:21:22

-2

变化

Socket s=new Socket(endPt.AdressFamily, SocketType.Stream, ProtocolType.Tcp); 

Socket s=new Socket(endPt.AddressFamily, SocketType.Stream, ProtocolType.Tcp); 
+0

这应该是一个评论,而不是一个答案。在这个例子中有一个错字,但是编译器会抓住这个错误,而不是错误的原因。 – 2018-02-21 18:53:17