Socket.Bind(EndPoint) 方法

定義

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

public:
 void Bind(System::Net::EndPoint ^ localEP);
public void Bind (System.Net.EndPoint localEP);
member this.Bind : System.Net.EndPoint -> unit
Public Sub Bind (localEP As EndPoint)

參數

localEP
EndPoint

要與 EndPoint 關聯的本機 Socket

例外狀況

localEPnull

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

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

範例

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

try
{
   aSocket->Bind( anEndPoint );
}
catch ( Exception^ e ) 
{
   Console::WriteLine( "Winsock error: {0}", e );
}
try {
    aSocket.Bind(anEndPoint);
}
catch (Exception e) {
    Console.WriteLine("Winsock error: " + e.ToString());
}
Try
    aSocket.Bind(anEndPoint)
Catch e As Exception
    Console.WriteLine("Winsock error: " & e.ToString())
End Try

備註

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 中的網路追蹤

適用於

另請參閱