2013-08-22 107 views
2

我刚刚建立了我的第一个TCP连接,并使用程序套接字测试来检查我的代码是否正常工作。它做什么。Winform中的TCP连接

现在,我试图做的是连接到一个服务器,没有一个可访问的IP地址,而是一个专门的网址。

例如,我的旧代码是这样的:

private void button1_Click(object sender, EventArgs e) 
    { 

     IPAddress ipAddress = IPAddress.Parse("127.0.0.1"); 
     using (TcpClient client = new TcpClient()) 
     { 
      client.Connect(ipAddress, 21); 
      lblStatus.Text = "Connected..."; 
     } 
    } 

这愉快地工作。现在我需要它来连接到以下:

private void button1_Click(object sender, EventArgs e) 
    { 

     IPAddress ipAddress = IPAddress.Parse("server.myaddress.com"); 
     using (TcpClient client = new TcpClient()) 
     { 
      client.Connect(ipAddress, 21); 
      lblStatus.Text = "Connected..."; 
     } 
    } 

我环顾四周,看看有什么我应该更改ip地址,但我无法找到任何东西。唉,对于我的项目,我需要使用Web地址连接到此服务器,因此使用IP地址不是一个选项。

有人可以告诉我我需要做什么吗?

回答

1
var address = Dns.GetHostAddresses("server.myaddress.com")[0]; 
IPAddress address = IPAddress.Parse(address); 
+0

感谢您的。但我有抱怨地址已经定义,并且它不能将Parse中的地址转换为字符串。无论如何,修复这些方法? – Sean

+0

@Sean第二行是不必要的。 'var address'应该已经是'IPAddress'。请参阅[GetHostAddresses](http://msdn.microsoft.com/zh-cn/library/system.net.dns.gethostaddresses.aspx) – endofzero

+0

是的,对不起。第二个是非常不必要的。我从记忆中写道。 –

0

尝试是这样的:

public static void ConnectUs() 
{  

     IPHostEntry ipHostInfo = System.Net.Dns.GetHostEntry("serveraddress.com"); 
     IPAddress ipAddress = ipHostInfo.AddressList[0]; 

     using (TcpClient client = new TcpClient()) 
     { 

     client.Connect(ipAddress, 21); 
     client.SendTimeout = 3000; 
     var status = client.Connected; 
      Console.WriteLine(status); 
     } 
}