C# 多網(wǎng)卡 Server Listen
更新時間:2007年04月16日 00:00:00 作者:
VC和BCB中做一個Server的監(jiān)聽程序,只需要指定端口,然后監(jiān)聽(Listen)就行了.在C#找不到這個函數(shù)了,慢慢看MSDN,怎么需要指定IP和Port才能監(jiān)聽,那么多網(wǎng)卡的機器應(yīng)該怎么寫程序呢?下面的程序可以解釋怎么去做.
TcpListener 類別會提供簡易的方法,用以在封鎖的同步模式中聆聽 (Listen) 和接受輸入的連接要求。您可以使用 TcpClient 或 Socket 來連接 TcpListener 。使用 IPEndPoint 、本機 IP 地址和連接端口編號,或者就只用連接埠編號來建立 TcpListener 。如果您想要基礎(chǔ)服務(wù)供貨商為您指派那些值,請指定 Any 給本機 IP 地址和 0 給本機連接埠編號。如果選擇要這樣做,您可以使用 LocalEndpoint 來識別指派的信息。
使用 Start 方法開始聆聽輸入的連接要求。 Start 將會讓輸入的連接進入隊列等候,一直到不是呼叫了 Stop 方法,就是已經(jīng)將 MaxConnections 排入隊列為止。使用 AcceptSocket 或 AcceptTcpClient ,從輸入的連接要求隊列取出連接。這兩個方法將會封鎖。如果想要避免封鎖,您可以先使用 Pending 方法來判斷連接要求是否可在隊列中取得。
呼叫 Stop 方法關(guān)閉 TcpListener 。
這個建構(gòu)函式可以讓您指定要聆聽輸入連接嘗試的本機 IP 地址和連接端口編號。使用這個建構(gòu)函式之前,您必須使用所需的本機 IP 地址和連接端口編號來建立 IPEndPoint 。將這個 IPEndPoint 當作 localEP 參數(shù)傳遞給建構(gòu)函式。
如果您不在乎要指派哪個本機地址,則可使用 IPAddress.Any 做為地址參數(shù)以建立 IPEndPoint ,而基礎(chǔ)服務(wù)供貨商將會指派最適當?shù)木W(wǎng)絡(luò)地址。如果您有多個網(wǎng)絡(luò)接口,這可能有助于簡化應(yīng)用程序。如果您不在乎要使用哪個本機連接埠,則可以指定 0 做為連接埠編號來建立 IPEndPoint 。在這種情況下,服務(wù)供貨商將會指派介于 1024 和 5000 之間的可用連接埠編號。如果您使用這個途徑,則可以藉由使用 LocalEndpoint 屬性來探索什么局域網(wǎng)絡(luò)地址和連接端口編號已經(jīng)被指派。
呼叫 Start 方法以開始聆聽輸入的連接嘗試。
IPEndPoint 類別包含主機以及應(yīng)用程序連接到主機服務(wù)所需的通訊端口信息。藉由結(jié)合主機的 IP 地址和服務(wù)的通訊端口編號, IPEndPoint 類別形成連接至服務(wù)的連接點 (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());
}
TcpListener 類別會提供簡易的方法,用以在封鎖的同步模式中聆聽 (Listen) 和接受輸入的連接要求。您可以使用 TcpClient 或 Socket 來連接 TcpListener 。使用 IPEndPoint 、本機 IP 地址和連接端口編號,或者就只用連接埠編號來建立 TcpListener 。如果您想要基礎(chǔ)服務(wù)供貨商為您指派那些值,請指定 Any 給本機 IP 地址和 0 給本機連接埠編號。如果選擇要這樣做,您可以使用 LocalEndpoint 來識別指派的信息。
使用 Start 方法開始聆聽輸入的連接要求。 Start 將會讓輸入的連接進入隊列等候,一直到不是呼叫了 Stop 方法,就是已經(jīng)將 MaxConnections 排入隊列為止。使用 AcceptSocket 或 AcceptTcpClient ,從輸入的連接要求隊列取出連接。這兩個方法將會封鎖。如果想要避免封鎖,您可以先使用 Pending 方法來判斷連接要求是否可在隊列中取得。
呼叫 Stop 方法關(guān)閉 TcpListener 。
這個建構(gòu)函式可以讓您指定要聆聽輸入連接嘗試的本機 IP 地址和連接端口編號。使用這個建構(gòu)函式之前,您必須使用所需的本機 IP 地址和連接端口編號來建立 IPEndPoint 。將這個 IPEndPoint 當作 localEP 參數(shù)傳遞給建構(gòu)函式。
如果您不在乎要指派哪個本機地址,則可使用 IPAddress.Any 做為地址參數(shù)以建立 IPEndPoint ,而基礎(chǔ)服務(wù)供貨商將會指派最適當?shù)木W(wǎng)絡(luò)地址。如果您有多個網(wǎng)絡(luò)接口,這可能有助于簡化應(yīng)用程序。如果您不在乎要使用哪個本機連接埠,則可以指定 0 做為連接埠編號來建立 IPEndPoint 。在這種情況下,服務(wù)供貨商將會指派介于 1024 和 5000 之間的可用連接埠編號。如果您使用這個途徑,則可以藉由使用 LocalEndpoint 屬性來探索什么局域網(wǎng)絡(luò)地址和連接端口編號已經(jīng)被指派。
呼叫 Start 方法以開始聆聽輸入的連接嘗試。
IPEndPoint 類別包含主機以及應(yīng)用程序連接到主機服務(wù)所需的通訊端口信息。藉由結(jié)合主機的 IP 地址和服務(wù)的通訊端口編號, IPEndPoint 類別形成連接至服務(wù)的連接點 (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());
}
相關(guān)文章
c# 如何將RadioButton與DataTable數(shù)據(jù)進行綁定
我接觸到的有將兩個控件的數(shù)據(jù)綁定、將控件的屬性與DataTable綁定,以下說說在將DataTable與RadioButton綁定的過程中出現(xiàn)的問題2012-11-11Windows系統(tǒng)中使用C#讀取文本文件內(nèi)容的小示例
這篇文章主要介紹了Windows系統(tǒng)中使用C#讀取文本文件內(nèi)容的小示例,包括一次一行地讀取文本文件的方法,需要的朋友可以參考下2016-02-02C#中Trim()、TrimStart()、TrimEnd()的用法介紹
這篇文章主要介紹了C#中Trim()、TrimStart()、TrimEnd()的用法,有需要的朋友可以參考一下2014-01-01