Socket.Bind(EndPoint) Metoda

Definicja

Kojarzy element Socket z lokalnym punktem końcowym.

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)

Parametry

localEP
EndPoint

Lokalny EndPoint do skojarzenia z elementem Socket.

Wyjątki

localEP to null.

Wystąpił błąd podczas próby uzyskania dostępu do gniazda.

Element Socket został zamknięty.

Obiekt wywołujący wyżej w stosie wywołań nie ma uprawnień do żądanej operacji.

Przykłady

Poniższy przykład kodu wiąże Socket obiekt przy użyciu określonego lokalnego punktu końcowego.

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

Uwagi

Bind Użyj metody , jeśli musisz użyć określonego lokalnego punktu końcowego. Przed wywołaniem metody należy Bind wywołać metodę Listen . Nie musisz wywoływać Bind metody przed użyciem Connect metody, chyba że musisz użyć określonego lokalnego punktu końcowego. Można użyć Bind metody zarówno w protokołach bez połączenia, jak i zorientowanych na połączenie.

Przed wywołaniem Bindmetody należy najpierw utworzyć lokalną IPEndPoint , z której mają być przekazywane dane. Jeśli nie obchodzi, który adres lokalny jest przypisany, możesz utworzyć metodę IPEndPoint using IPAddress.Any jako parametr adresu, a podstawowy dostawca usług przypisze najbardziej odpowiedni adres sieciowy. Może to pomóc uprościć aplikację, jeśli masz wiele interfejsów sieciowych. Jeśli nie obchodzi cię, który port lokalny jest używany, możesz utworzyć IPEndPoint parametr using 0 dla numeru portu. W takim przypadku dostawca usług przypisze dostępny numer portu z zakresu od 1024 do 5000.

Jeśli używasz powyższej metody, możesz sprawdzić, jaki adres sieci lokalnej i numer portu zostały przypisane, wywołując element LocalEndPoint. Jeśli używasz protokołu zorientowanego na połączenie, LocalEndPoint nie zwróci lokalnie przypisanego adresu sieciowego, dopóki nie zostanie wykonane wywołanie metody Connect or EndConnect . Jeśli używasz protokołu bez połączenia, nie będziesz mieć dostępu do tych informacji, dopóki nie ukończysz wysyłania lub odbierania.

Jeśli gniazdo UDP chce odbierać informacje o interfejsie dla odebranych pakietów, SetSocketOption należy jawnie wywołać metodę z opcją gniazda ustawioną bezpośrednio PacketInformation po wywołaniu Bind metody.

Uwaga

Jeśli zamierzasz odbierać datagramy multiemisji, musisz wywołać metodę Bind przy użyciu numeru portu multiemisji.

Uwaga

Należy wywołać metodę Bind , jeśli zamierzasz odbierać bez połączenia datagramy przy użyciu ReceiveFrom metody .

Uwaga

Jeśli podczas wywoływania Bind metody wystąpi błądSocketException, użyj SocketException.ErrorCode właściwości , aby uzyskać określony kod błędu. Po uzyskaniu tego kodu zapoznaj się z dokumentacją kodu błędu interfejsu API Windows Sockets w wersji 2 , aby uzyskać szczegółowy opis błędu.

Uwaga

Ten element członkowski generuje informacje ze śledzenia pod warunkiem włączenia funkcji śledzenia sieci w aplikacji. Aby uzyskać więcej informacji, zobacz Śledzenie sieci w .NET Framework.

Dotyczy

Zobacz też