Socket.Bind(EndPoint) 方法

定義

使 Socket 與本機端點建立關聯。

C#
public void Bind(System.Net.EndPoint localEP);

參數

localEP
EndPoint

要與 EndPoint 關聯的本機 Socket

例外狀況

localEPnull

嘗試存取通訊端時發生錯誤。

在呼叫堆疊中位置較高的呼叫端對於要求的作業沒有權限。

範例

下列程式代碼範例會使用指定的本機端點系 Socket 結 。

C#
try {
    aSocket.Bind(anEndPoint);
}
catch (Exception e) {
    Console.WriteLine("Winsock error: " + e.ToString());
}

備註

Bind如果您需要使用特定的本機端點,請使用 方法。 您必須先呼叫 BindListen 才能呼叫 方法。 除非您需要使用特定的本機端點,否則您不需要在使用 Connect 方法之前呼叫 Bind 。 您可以在 Bind 無連線和連接導向通訊協定上使用 方法。

呼叫 Bind之前,您必須先建立您想要用來傳達數據的本機 IPEndPoint 。 如果您不小心指派的本機位址,您可以使用 作為地址參數來建立 IPEndPointIPAddress.Any ,而基礎服務提供者會指派最適當的網路位址。 如果您有多個網路介面,這有助於簡化您的應用程式。 如果您不小心使用哪個本機埠,您可以針對埠號碼建立 IPEndPoint using 0。 在此情況下,服務提供者會指派介於1024到5000之間的可用埠號碼。

如果您使用上述方法,您可以呼叫 LocalEndPoint來探索已指派哪些局域網路位址和埠號碼。 如果您使用連線導向通訊協定,在呼叫 ConnectEndConnect 方法之後,LocalEndPoint才會傳回本機指派的網路位址。 如果您使用無連線通訊協定,在完成傳送或接收之前,您將無法存取這項資訊。

如果 UDP 套接字想要接收已接收封包的介面資訊, SetSocketOption 則應在呼叫 方法之後,使用套接字選項明確呼叫 , 設定為 PacketInformationBind

備註

如果您想要接收多播數據報,您必須使用多播埠號碼呼叫 Bind 方法。

備註

如果您想要使用 ReceiveFrom 方法接收無連接數據報,則必須呼叫 Bind 方法。

備註

如果您在呼叫 Bind 方法時收到 SocketException ,請使用 SocketException.ErrorCode 屬性來取得特定的錯誤碼。 取得此程式代碼之後,請參閱 Windows Sockets 第 2 版 API 錯誤碼 檔,以取得錯誤的詳細描述。

備註

在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤

適用於

產品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另請參閱