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

Nell'esempio di codice seguente viene associato un Socket oggetto utilizzando 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 prima di poter chiamare Bind 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 su protocolli sia senza connessione che orientati alla connessione.

Prima di chiamare Bind, è necessario creare il locale IPEndPoint da cui si intende comunicare i dati. Se non è necessario specificare l'indirizzo locale assegnato, è possibile creare un IPEndPoint oggetto utilizzando IPAddress.Any come parametro di indirizzo e il provider di servizi sottostante assegnerà l'indirizzo di rete più appropriato. In questo modo è possibile semplificare l'applicazione se sono presenti più interfacce di rete. Se non è importante quale porta locale viene usata, è possibile creare un IPEndPoint oggetto usando 0 per il numero di porta. In questo caso, il provider di servizi assegnerà 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 di rete assegnato in locale fino a quando non si è effettuata una chiamata al Connect metodo o EndConnect . Se si usa un protocollo senza connessione, non si avrà accesso a queste informazioni fino a quando non si è 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 la chiamata al 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, fare riferimento alla documentazione relativa al 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