2013-08-22 105 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); 
     } 
}