C# 多網卡 Server Listen

來源:互聯網
上載者:User

VC和BCB中做一個Server的監聽程式,只需要指定連接埠,然後監聽(Listen)就行了.在C#找不到這個函數了,慢慢看MSDN,怎麼需要指定IP和Port才能監聽,那麼多網卡的機器應該怎麼寫程式呢?下面的程式可以解釋怎麼去做.
TcpListener 類別會提供簡易的方法,用以在封鎖的同步模式中聆聽 (Listen) 和接受輸入的串連要求。您可以使用 TcpClient 或 Socket 來串連 TcpListener 。使用 IPEndPoint 、本機 IP 位址和串連連接埠編號,或者就只用串連埠編號來建立 TcpListener 。如果您想要基礎服務供貨商為您指派那些值,請指定 Any 給本機 IP 位址和 0 給本機串連埠編號。如果選擇要這樣做,您可以使用 LocalEndpoint 來識別指派的資訊。
使用 Start 方法開始聆聽輸入的串連要求。 Start 將會讓輸入的串連進入隊列等候,一直到不是呼叫了 Stop 方法,就是已經將 MaxConnections 排入隊列為止。使用 AcceptSocket 或 AcceptTcpClient ,從輸入的串連要求隊列取出串連。這兩個方法將會封鎖。如果想要避免封鎖,您可以先使用 Pending 方法來判斷串連要求是否可在隊列中取得。
呼叫 Stop 方法關閉 TcpListener 。
這個建構函式可以讓您指定要聆聽輸入串連嘗試的本機 IP 位址和串連連接埠編號。使用這個建構函式之前,您必須使用所需的本機 IP 位址和串連連接埠編號來建立 IPEndPoint 。將這個 IPEndPoint 當作 localEP 參數傳遞給建構函式。
如果您不在乎要指派哪個本機地址,則可使用 IPAddress.Any 做為地址參數以建立 IPEndPoint ,而基礎服務供貨商將會指派最適當的網路地址。如果您有多個網路介面,這可能有助於簡化應用程式。如果您不在乎要使用哪個本機串連埠,則可以指定 0 做為串連埠編號來建立 IPEndPoint 。在這種情況下,服務供貨商將會指派介於 1024 和 5000 之間的可用串連埠編號。如果您使用這個途徑,則可以藉由使用 LocalEndpoint 屬性來探索什麼區域網路絡地址和串連連接埠編號已經被指派。
呼叫 Start 方法以開始聆聽輸入的串連嘗試。
IPEndPoint 類別包含主機以及應用程式串連到主機服務所需的通訊連接埠資訊。藉由結合主機的 IP 位址和服務的通訊連接埠編號, IPEndPoint 類別形成串連至服務的連接點 (Connection Point)。
[C#]
//Creates an instance of the TcpListener class by providing a local endpoint.
IPAddress ipAddress = Dns.Resolve(Dns.GetHostName()).AddressList[0];
IPEndPoint ipLocalEndPoint = new IPEndPoint(ipAddress, 11000);
try{
TcpListener tcpListener = new TcpListener(ipLocalEndPoint);
}
catch ( Exception e ){
Console.WriteLine( e.ToString());
}
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.