Socket.Bind(EndPoint) Metodo

Definizione

Associa un Socket a un endpoint locale.

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)

Parametri

localEP
EndPoint

EndPoint locale da associare al Socket.

Eccezioni

localEP è null.

Si è verificato un errore durante il tentativo di accesso al socket.

L'oggetto Socket è stato chiuso.

Un chiamante di livello superiore nello stack di chiamate non ha l'autorizzazione per l'operazione richiesta.

Esempio

L'esempio di codice seguente associa un oggetto Socket usando l'endpoint locale specificato.

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

Commenti

Usare il Bind metodo se è necessario usare un endpoint locale specifico. È necessario chiamare Bind prima di poter chiamare il Listen metodo. Non è necessario chiamare Bind prima di usare il Connect metodo, a meno che non sia necessario usare un endpoint locale specifico. È possibile usare il Bind metodo sia per i protocolli senza connessione che per i protocolli orientati alla connessione.

Prima di chiamare Bind, è prima necessario creare il locale IPEndPoint da cui si intende comunicare i dati. Se l'indirizzo locale viene assegnato, è possibile creare un IPEndPoint oggetto usando IPAddress.Any come parametro di indirizzo e il provider di servizi sottostante assegna l'indirizzo di rete più appropriato. In questo modo è possibile semplificare l'applicazione se sono presenti più interfacce di rete. Se non si importa quale porta locale viene usata, è possibile creare un IPEndPoint oggetto usando 0 per il numero di porta. In questo caso, il provider di servizi assegna un numero di porta disponibile compreso tra 1024 e 5000.

Se si usa l'approccio precedente, è possibile individuare l'indirizzo di rete locale e il numero di porta assegnati chiamando .LocalEndPoint Se si usa un protocollo orientato alla connessione, LocalEndPoint non restituirà l'indirizzo Connect di rete assegnato in locale fino a quando non è stata effettuata una chiamata al metodo o EndConnect . Se si usa un protocollo senza connessione, non sarà possibile accedere a queste informazioni finché non è stato completato un invio o una ricezione.

Se un socket UDP vuole ricevere informazioni sull'interfaccia sui pacchetti ricevuti, il SetSocketOption metodo deve essere chiamato in modo esplicito con l'opzione socket impostata su PacketInformation immediatamente dopo aver chiamato il Bind metodo.

Nota

Se si intende ricevere datagrammi multicast, è necessario chiamare il Bind metodo con un numero di porta multicast.

Nota

È necessario chiamare il Bind metodo se si intende ricevere datagrammi senza connessione usando il ReceiveFrom metodo .

Nota

Se si riceve un oggetto SocketException quando si chiama il Bind metodo, utilizzare la SocketException.ErrorCode proprietà per ottenere il codice di errore specifico. Dopo aver ottenuto questo codice, vedere la documentazione del codice di errore dell'API Windows Sockets versione 2 per una descrizione dettagliata dell'errore.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso. Per altre informazioni, vedere Traccia di rete in .NET Framework.

Si applica a

Vedi anche