Socket.Bind(EndPoint) Metodo

Definizione

Associa un Socket a un endpoint locale.Associates a Socket with a local endpoint.

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.The local EndPoint to associate with the Socket.

Eccezioni

localEP è null.localEP is null.

Si è verificato un errore durante il tentativo di accesso al socket.An error occurred when attempting to access the socket.

L'oggetto Socket è stato chiuso.The Socket has been closed.

Un chiamante di livello superiore nello stack di chiamate non ha l'autorizzazione per l'operazione richiesta.A caller higher in the call stack does not have permission for the requested operation.

Esempio

Nell'esempio di codice seguente viene associato un oggetto Socket utilizzando l'endpoint locale specificato.The following code example binds a Socket using the specified local endpoint.

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.Use the Bind method if you need to use a specific local endpoint. BindPrima di poter chiamare il metodo, è necessario chiamare Listen .You must call Bind before you can call the Listen method. Non è necessario chiamare prima di Bind usare il metodo a meno che non Connect sia necessario usare un endpoint locale specifico.You do not need to call Bind before using the Connect method unless you need to use a specific local endpoint. È possibile utilizzare il Bind metodo sui protocolli senza connessione e orientato alla connessione.You can use the Bind method on both connectionless and connection-oriented protocols.

Prima di chiamare Bind , è necessario innanzitutto creare il locale IPEndPoint da cui si intende comunicare i dati.Before calling Bind, you must first create the local IPEndPoint from which you intend to communicate data. Se non si è interessati a quale indirizzo locale è assegnato, è possibile creare un IPEndPoint usando IPAddress.Any come parametro address e il provider di servizi sottostante assegnerà l'indirizzo di rete più appropriato.If you do not care which local address is assigned, you can create an IPEndPoint using IPAddress.Any as the address parameter, and the underlying service provider will assign the most appropriate network address. Questo potrebbe semplificare l'applicazione se si dispone di più interfacce di rete.This might help simplify your application if you have multiple network interfaces. Se non si è interessati alla porta locale utilizzata, è possibile creare un oggetto IPEndPoint utilizzando 0 per il numero di porta.If you do not care which local port is used, you can create an IPEndPoint using 0 for the port number. In questo caso, il provider di servizi assegnerà un numero di porta disponibile compreso tra 1024 e 5000.In this case, the service provider will assign an available port number between 1024 and 5000.

Se si usa l'approccio precedente, è possibile individuare l'indirizzo di rete locale e il numero di porta assegnati chiamando LocalEndPoint .If you use the above approach, you can discover what local network address and port number has been assigned by calling the LocalEndPoint. Se si utilizza un protocollo orientato alla connessione, LocalEndPoint non restituirà l'indirizzo di rete assegnato localmente fino a quando non sarà stata effettuata una chiamata al Connect EndConnect metodo o.If you are using a connection-oriented protocol, LocalEndPoint will not return the locally assigned network address until after you have made a call to the Connect or EndConnect method. Se si utilizza un protocollo senza connessione, non sarà possibile accedere a queste informazioni finché non sarà stata completata un'operazione di invio o ricezione.If you are using a connectionless protocol, you will not have access to this information until you have completed a send or receive.

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.If a UDP socket wants to receive interface information on received packets, the SetSocketOption method should be explicitly called with the socket option set to PacketInformation immediately after calling the Bind method.

Nota

Se si intende ricevere datagrammi multicast, è necessario chiamare il Bind metodo con un numero di porta multicast.If you intend to receive multicast datagrams, you must call the Bind method with a multicast port number.

Nota

È necessario chiamare il Bind metodo se si desidera ricevere datagrammi senza connessione utilizzando il ReceiveFrom metodo.You must call the Bind method if you intend to receive connectionless datagrams using the ReceiveFrom method.

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.If you receive a SocketException when calling the Bind method, use the SocketException.ErrorCode property to obtain the specific error code. Dopo aver ottenuto questo codice, vedere la documentazione relativa al codice di errore dell'API di Windows Sockets versione 2 per una descrizione dettagliata dell'errore.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Nota

Questo membro genera informazioni di traccia quando viene abilitata la funzionalità di traccia di rete nell'applicazione in uso.This member outputs trace information when you enable network tracing in your application. Per ulteriori informazioni, vedere la pagina relativa alla traccia di rete nel .NET Framework.For more information, see Network Tracing in the .NET Framework.

Si applica a

Vedi anche