Socket Classe

Definizione

Implementa l'interfaccia socket Berkeley.Implements the Berkeley sockets interface.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Ereditarietà
Socket
Implementazioni

Esempi

Nell'esempio di codice seguente viene illustrato come utilizzare la classe Socket per inviare dati a un server HTTP e ricevere la risposta.The following code example shows how the Socket class can be used to send data to an HTTP server and receive the response. Questo esempio si blocca fino alla ricezione dell'intera pagina.This example blocks until the entire page is received.

#using <System.dll>

using namespace System;
using namespace System::Text;
using namespace System::IO;
using namespace System::Net;
using namespace System::Net::Sockets;
using namespace System::Collections;
Socket^ ConnectSocket( String^ server, int port )
{
   Socket^ s = nullptr;
   IPHostEntry^ hostEntry = nullptr;
   
   // Get host related information.
   hostEntry = Dns::Resolve( server );
   
   // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
   // an exception that occurs when the host IP Address is not compatible with the address family
   // (typical in the IPv6 case).
   IEnumerator^ myEnum = hostEntry->AddressList->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      IPAddress^ address = safe_cast<IPAddress^>(myEnum->Current);
      IPEndPoint^ endPoint = gcnew IPEndPoint( address,port );
      Socket^ tmpS = gcnew Socket( endPoint->AddressFamily,SocketType::Stream,ProtocolType::Tcp );
      tmpS->Connect( endPoint );
      if ( tmpS->Connected )
      {
         s = tmpS;
         break;
      }
      else
      {
         continue;
      }
   }

   return s;
}

// This method requests the home page content for the specified server.
String^ SocketSendReceive( String^ server, int port )
{
   String^ request = String::Concat( "GET / HTTP/1.1\r\nHost: ", server, "\r\nConnection: Close\r\n\r\n" );
   array<Byte>^bytesSent = Encoding::ASCII->GetBytes( request );
   array<Byte>^bytesReceived = gcnew array<Byte>(256);
   String^ strRetPage = "";
   
   // Create a socket connection with the specified server and port.
   Socket^ s = ConnectSocket( server, port );
   if ( s == nullptr )
      return ("Connection failed");
   
   // Send request to the server.
   s->Send( bytesSent, bytesSent->Length, static_cast<SocketFlags>(0) );
   
   // Receive the server home page content.
   int bytes = 0;
   strRetPage = String::Concat( "Default HTML page on ", server, ":\r\n" );
   do
   {
      bytes = s->Receive( bytesReceived, bytesReceived->Length, static_cast<SocketFlags>(0) );
      strRetPage = String::Concat( strRetPage, Encoding::ASCII->GetString( bytesReceived, 0, bytes ) );
   }
   while ( bytes > 0 );
   
   s->Dispose();

   return strRetPage;
}

int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   String^ host;
   int port = 80;
   if ( args->Length == 1 )
      
   // If no server name is passed as argument to this program, 
   // use the current host name as default.
   host = Dns::GetHostName();
   else
      host = args[ 1 ];

   String^ result = SocketSendReceive( host, port );
   Console::WriteLine( result );
}
using System;
using System.Text;
using System.IO;
using System.Net;
using System.Net.Sockets;

public class GetSocket
{
    private static Socket ConnectSocket(string server, int port)
    {
        Socket s = null;
        IPHostEntry hostEntry = null;
        
        // Get host related information.
        hostEntry = Dns.GetHostEntry(server);

        // Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
        // an exception that occurs when the host IP Address is not compatible with the address family
        // (typical in the IPv6 case).
        foreach(IPAddress address in hostEntry.AddressList)
        {
            IPEndPoint ipe = new IPEndPoint(address, port);
            Socket tempSocket = 
                new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

            tempSocket.Connect(ipe);

            if(tempSocket.Connected)
            {
                s = tempSocket;
                break;
            }
            else
            {
                continue;
            }
        }
        return s;
    }

    // This method requests the home page content for the specified server.
    private static string SocketSendReceive(string server, int port) 
    {
        string request = "GET / HTTP/1.1\r\nHost: " + server + 
            "\r\nConnection: Close\r\n\r\n";
        Byte[] bytesSent = Encoding.ASCII.GetBytes(request);
        Byte[] bytesReceived = new Byte[256];
        string page = "";
        
        // Create a socket connection with the specified server and port.
        using(Socket s = ConnectSocket(server, port)) {

            if (s == null)
                return ("Connection failed");
        
            // Send request to the server.
            s.Send(bytesSent, bytesSent.Length, 0);  
            
            // Receive the server home page content.
            int bytes = 0;
            page = "Default HTML page on " + server + ":\r\n";

            // The following will block until the page is transmitted.
            do {
                bytes = s.Receive(bytesReceived, bytesReceived.Length, 0);
                page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes);
            }
            while (bytes > 0);
        }
        
        return page;
    }
    
    public static void Main(string[] args) 
    {
        string host;
        int port = 80;

        if (args.Length == 0)
            // If no server name is passed as argument to this program, 
            // use the current host name as the default.
            host = Dns.GetHostName();
        else
            host = args[0];

        string result = SocketSendReceive(host, port); 
        Console.WriteLine(result);
    }
}

Imports System.Text
Imports System.IO
Imports System.Net
Imports System.Net.Sockets

Public Class GetSocket
   
   Private Shared Function ConnectSocket(server As String, port As Integer) As Socket
      Dim s As Socket = Nothing
      Dim hostEntry As IPHostEntry = Nothing      
     
         ' Get host related information.
        hostEntry = Dns.GetHostEntry(server)
         
         ' Loop through the AddressList to obtain the supported AddressFamily. This is to avoid
         ' an exception that occurs when the host host IP Address is not compatible with the address family
         ' (typical in the IPv6 case).
      Dim address As IPAddress
 
        For Each address In  hostEntry.AddressList
            Dim endPoint As New IPEndPoint(address, port)
            Dim tempSocket As New Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
      
            tempSocket.Connect(endPoint)
            
            If tempSocket.Connected Then
               s = tempSocket
               Exit For
            End If

         Next address
      
      Return s
   End Function
   
   ' This method requests the home page content for the specified server.
   
   Private Shared Function SocketSendReceive(server As String, port As Integer) As String
      'Set up variables and String to write to the server.
      Dim ascii As Encoding = Encoding.ASCII
      Dim request As String = "GET / HTTP/1.1" + ControlChars.Cr + ControlChars.Lf + "Host: " + server + ControlChars.Cr + ControlChars.Lf + "Connection: Close" + ControlChars.Cr + ControlChars.Lf + ControlChars.Cr + ControlChars.Lf
      Dim bytesSent As [Byte]() = ascii.GetBytes(request)
      Dim bytesReceived(255) As [Byte]
      Dim page As String = ""  
      
      ' Create a socket connection with the specified server and port.
      Dim s As Socket = ConnectSocket(server, port)
      
      If s Is Nothing Then
         Return "Connection failed"
      End If 
      ' Send request to the server.
      s.Send(bytesSent, bytesSent.Length, 0)
      
      ' Receive the server  home page content.
      Dim bytes As Int32
      
      ' Read the first 256 bytes.
      page = "Default HTML page on " + server + ":" + ControlChars.Cr + ControlChars.Lf
      
      ' The following will block until the page is transmitted.
      Do
         bytes = s.Receive(bytesReceived, bytesReceived.Length, 0)
            page = page + Encoding.ASCII.GetString(bytesReceived, 0, bytes)
      Loop While bytes > 0
      
      Return page
   End Function 
   
   'Entry point which delegates to C-style main Private Function
   Public Overloads Shared Sub Main()
      Main(System.Environment.GetCommandLineArgs())
   End Sub
   
   Overloads Private Shared Sub Main(args() As String)
      Dim host As String
      Dim port As Integer = 80
      
      If args.Length = 1 Then
         ' If no server name is passed as argument to this program, 
         ' use the current host name as default.
         host = Dns.GetHostName()
      Else
         host = args(1)
      End If 
      
      Dim result As String = SocketSendReceive(host, port)
      
      Console.WriteLine(result)
   End Sub
End Class  

Commenti

La classe Socket fornisce un set completo di metodi e proprietà per le comunicazioni di rete.The Socket class provides a rich set of methods and properties for network communications. La classe Socket consente di eseguire il trasferimento dati sincrono e asincrono utilizzando uno dei protocolli di comunicazione elencati nell'enumerazione ProtocolType.The Socket class allows you to perform both synchronous and asynchronous data transfer using any of the communication protocols listed in the ProtocolType enumeration.

La classe Socket segue il modello di denominazione .NET Framework per i metodi asincroni.The Socket class follows the .NET Framework naming pattern for asynchronous methods. Ad esempio, il metodo di Receive sincrono corrisponde ai metodi asincroni BeginReceive e EndReceive.For example, the synchronous Receive method corresponds to the asynchronous BeginReceive and EndReceive methods.

Se l'applicazione richiede un solo thread durante l'esecuzione, usare i metodi seguenti, progettati per la modalità operativa sincrona.If your application only requires one thread during execution, use the following methods, which are designed for synchronous operation mode.

  • Se si usa un protocollo orientato alla connessione, ad esempio TCP, il server può restare in ascolto delle connessioni usando il metodo Listen.If you are using a connection-oriented protocol such as TCP, your server can listen for connections using the Listen method. Il metodo Accept elabora le richieste di connessione in ingresso e restituisce un Socket che è possibile usare per comunicare i dati con l'host remoto.The Accept method processes any incoming connection requests and returns a Socket that you can use to communicate data with the remote host. Utilizzare questo Socket restituito per chiamare il metodo Send o Receive.Use this returned Socket to call the Send or Receive method. Chiamare il metodo Bind prima di chiamare il metodo Listen se si desidera specificare l'indirizzo IP locale e il numero di porta.Call the Bind method prior to calling the Listen method if you want to specify the local IP address and port number. Usare un numero di porta pari a zero se si vuole che il provider di servizi sottostante assegni una porta gratuita.Use a port number of zero if you want the underlying service provider to assign a free port for you. Se si desidera connettersi a un host in ascolto, chiamare il metodo Connect.If you want to connect to a listening host, call the Connect method. Per comunicare i dati, chiamare il metodo Send o Receive.To communicate data, call the Send or Receive method.

  • Se si utilizza un protocollo senza connessione, ad esempio UDP, non è necessario restare in ascolto delle connessioni.If you are using a connectionless protocol such as UDP, you do not need to listen for connections at all. Chiamare il metodo ReceiveFrom per accettare tutti i datagrammi in ingresso.Call the ReceiveFrom method to accept any incoming datagrams. Usare il metodo SendTo per inviare datagrammi a un host remoto.Use the SendTo method to send datagrams to a remote host.

Per elaborare le comunicazioni utilizzando thread distinti durante l'esecuzione, utilizzare i metodi seguenti, progettati per la modalità operativa asincrona.To process communications using separate threads during execution, use the following methods, which are designed for asynchronous operation mode.

Se si eseguono più operazioni asincrone su un socket, queste non vengono necessariamente completate nell'ordine in cui vengono avviate.If you perform multiple asynchronous operations on a socket, they do not necessarily complete in the order in which they are started.

Al termine dell'invio e della ricezione dei dati, utilizzare il metodo Shutdown per disabilitare l'Socket.When you are finished sending and receiving data, use the Shutdown method to disable the Socket. Dopo la chiamata di Shutdown, chiamare il metodo Close per rilasciare tutte le risorse associate al Socket.After calling Shutdown, call the Close method to release all resources associated with the Socket.

La classe Socket consente di configurare la Socket utilizzando il metodo SetSocketOption.The Socket class allows you to configure your Socket using the SetSocketOption method. Recuperare queste impostazioni usando il metodo GetSocketOption.Retrieve these settings using the GetSocketOption method.

Nota

Se si sta scrivendo un'applicazione relativamente semplice e non sono necessarie le prestazioni massime, è consigliabile utilizzare TcpClient, TcpListenere UdpClient.If you are writing a relatively simple application and do not require maximum performance, consider using TcpClient, TcpListener, and UdpClient. Queste classi forniscono un'interfaccia più semplice e intuitiva per Socket le comunicazioni.These classes provide a simpler and more user-friendly interface to Socket communications.

Costruttori

Socket(AddressFamily, SocketType, ProtocolType)

Inizializza una nuova istanza della classe Socket utilizzando la famiglia di indirizzi, il tipo di socket e il protocollo specificati.Initializes a new instance of the Socket class using the specified address family, socket type and protocol.

Socket(SocketInformation)

Inizializza una nuova istanza della classe Socket utilizzando il valore specificato restituito da DuplicateAndClose(Int32).Initializes a new instance of the Socket class using the specified value returned from DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Inizializza una nuova istanza della classe Socket utilizzando il tipo di socket e il protocollo specificati.Initializes a new instance of the Socket class using the specified socket type and protocol.

Proprietà

AddressFamily

Ottiene la famiglia di indirizzi del Socket.Gets the address family of the Socket.

Available

Ottiene la quantità dei dati ricevuti dalla rete e disponibili per essere letti.Gets the amount of data that has been received from the network and is available to be read.

Blocking

Ottiene o imposta un valore che indica se il Socket è in modalità blocco.Gets or sets a value that indicates whether the Socket is in blocking mode.

Connected

Ottiene un valore che indica se un Socket si è connesso a un host remoto dall'ultima operazione Send o Receive.Gets a value that indicates whether a Socket is connected to a remote host as of the last Send or Receive operation.

DontFragment

Ottiene o imposta un valore Boolean che specifica se il Socket consente la frammentazione dei datagrammi IP (Internet Protocol).Gets or sets a Boolean value that specifies whether the Socket allows Internet Protocol (IP) datagrams to be fragmented.

DualMode

Ottiene o imposta un valore di Boolean che specifica se Socket è un socket dual mode usato per IPv4 e IPv6.Gets or sets a Boolean value that specifies whether the Socket is a dual-mode socket used for both IPv4 and IPv6.

EnableBroadcast

Ottiene o imposta un valore Boolean che specifica se il Socket può inviare o ricevere pacchetti broadcast.Gets or sets a Boolean value that specifies whether the Socket can send or receive broadcast packets.

ExclusiveAddressUse

Ottiene o imposta un valore Boolean che specifica se il Socket consente di associare a una porta un unico processo.Gets or sets a Boolean value that specifies whether the Socket allows only one process to bind to a port.

Handle

Ottiene l'handle del sistema operativo per il Socket.Gets the operating system handle for the Socket.

IsBound

Ottiene un valore che indica se il Socket è associato a una porta locale specifica.Gets a value that indicates whether the Socket is bound to a specific local port.

LingerState

Ottiene o imposta un valore che specifica se il Socket ritarderà la chiusura di un socket durante un tentativo di invio di tutti i dati in sospeso.Gets or sets a value that specifies whether the Socket will delay closing a socket in an attempt to send all pending data.

LocalEndPoint

Ottiene l'endpoint locale.Gets the local endpoint.

MulticastLoopback

Ottiene o imposta un valore che specifica se i pacchetti multicast in uscita devono essere recapitati all'applicazione mittente.Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.

NoDelay

Ottiene o imposta un valore Boolean che specifica se il Socket di flusso utilizza l'algoritmo Nagle.Gets or sets a Boolean value that specifies whether the stream Socket is using the Nagle algorithm.

OSSupportsIPv4

Indica se il sistema operativo sottostante e gli adattatori di rete supportano il protocollo IPv4.Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).

OSSupportsIPv6

Indica se il sistema operativo sottostante e gli adattatori di rete supportano il protocollo IPv6.Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).

ProtocolType

Ottiene il tipo di protocollo del Socket.Gets the protocol type of the Socket.

ReceiveBufferSize

Ottiene o imposta un valore che specifica le dimensioni del buffer di ricezione del Socket.Gets or sets a value that specifies the size of the receive buffer of the Socket.

ReceiveTimeout

Ottiene o imposta un valore che specifica l'intervallo di tempo dopo il quale si verifica il timeout di una chiamata Receive sincrona.Gets or sets a value that specifies the amount of time after which a synchronous Receive call will time out.

RemoteEndPoint

Ottiene l'endpoint remoto.Gets the remote endpoint.

SafeHandle

Ottiene un oggetto SafeSocketHandle che rappresenta l'handle del socket incapsulato dall'oggetto corrente Socket.Gets a SafeSocketHandle that represents the socket handle that the current Socket object encapsulates.

SendBufferSize

Ottiene o imposta un valore che specifica le dimensioni del buffer di invio del Socket.Gets or sets a value that specifies the size of the send buffer of the Socket.

SendTimeout

Ottiene o imposta un valore che specifica l'intervallo di tempo dopo il quale si verifica il timeout di una chiamata Send sincrona.Gets or sets a value that specifies the amount of time after which a synchronous Send call will time out.

SocketType

Ottiene il tipo di Socket.Gets the type of the Socket.

SupportsIPv4

Ottiene un valore che indica se è disponibile il supporto per IPv4 e se IPv4 è abilitato sull'host corrente.Gets a value indicating whether IPv4 support is available and enabled on the current host.

SupportsIPv6

Ottiene un valore che indica se Framework supporta IPv6 per determinati membri Dns obsoleti.Gets a value that indicates whether the Framework supports IPv6 for certain obsolete Dns members.

Ttl

Ottiene o imposta un valore che specifica la durata (TTL) dei pacchetti IP inviati dal Socket.Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the Socket.

UseOnlyOverlappedIO

Specifica se il socket deve utilizzare solo la modalità operazioni di I/O sovrapposte.Specifies whether the socket should only use Overlapped I/O mode.

Metodi

Accept()

Crea un nuovo oggetto Socket per una nuova connessione.Creates a new Socket for a newly created connection.

AcceptAsync(SocketAsyncEventArgs)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso.Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(Int32, AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso e riceve il primo blocco di dati inviato dall'applicazione client.Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Avvia un'operazione asincrona per accettare un tentativo di connessione in ingresso da un socket specificato e riceve il primo blocco di dati inviato dall'applicazione client.Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application.

BeginConnect(EndPoint, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto.Begins an asynchronous request for a remote host connection.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto.Begins an asynchronous request for a remote host connection. L'host remoto viene specificato da un IPAddress e da un numero di porta.The host is specified by an IPAddress and a port number.

BeginConnect(IPAddress[], Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto.Begins an asynchronous request for a remote host connection. L'host viene specificato da una matrice di IPAddress e un numero di porta.The host is specified by an IPAddress array and a port number.

BeginConnect(String, Int32, AsyncCallback, Object)

Avvia una richiesta asincrona di una connessione all'host remoto.Begins an asynchronous request for a remote host connection. L'host viene specificato da un nome host e da un numero di porta.The host is specified by a host name and a port number.

BeginDisconnect(Boolean, AsyncCallback, Object)

Avvia una richiesta asincrona di disconnessione da un endpoint remoto.Begins an asynchronous request to disconnect from a remote endpoint.

BeginReceive(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.Begins to asynchronously receive data from a connected Socket.

BeginReceive(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.Begins to asynchronously receive data from a connected Socket.

BeginReceive(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un Socket connesso.Begins to asynchronously receive data from a connected Socket.

BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.Begins to asynchronously receive data from a specified network device.

BeginReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Avvia la ricezione asincrona del numero di byte di dati specificato nella posizione specificata del buffer di dati, usando l'oggetto SocketFlags specificato e memorizza le informazioni su endpoint e pacchetti.Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

BeginSend(Byte[], Int32, Int32, SocketFlags, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.Sends data asynchronously to a connected Socket.

BeginSend(Byte[], Int32, Int32, SocketFlags, SocketError, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.Sends data asynchronously to a connected Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.Sends data asynchronously to a connected Socket.

BeginSend(IList<ArraySegment<Byte>>, SocketFlags, SocketError, AsyncCallback, Object)

Invia dati in modo asincrono a un Socket connesso.Sends data asynchronously to a connected Socket.

BeginSendFile(String, AsyncCallback, Object)

Invia il file fileName a un oggetto connesso Socket utilizzando il flag UseDefaultWorkerThread.Sends the file fileName to a connected Socket object using the UseDefaultWorkerThread flag.

BeginSendFile(String, Byte[], Byte[], TransmitFileOptions, AsyncCallback, Object)

Invia un file e buffer di dati in modo asincrono a un oggetto Socket connesso.Sends a file and buffers of data asynchronously to a connected Socket object.

BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)

Invia i dati in modo asincrono a un host remoto specifico.Sends data asynchronously to a specific remote host.

Bind(EndPoint)

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

CancelConnectAsync(SocketAsyncEventArgs)

Annulla una richiesta asincrona di una connessione all'host remoto.Cancels an asynchronous request for a remote host connection.

Close()

Chiude la connessione all'oggetto Socket e rilascia tutte le risorse associate.Closes the Socket connection and releases all associated resources.

Close(Int32)

Chiude la connessione Socket e rilascia tutte le risorse associate con un timeout specificato in modo da consentire l'invio dei dati in coda.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Connect(EndPoint)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host.

Connect(IPAddress, Int32)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host. L'host è specificato da un indirizzo IP e da un numero di porta.The host is specified by an IP address and a port number.

Connect(IPAddress[], Int32)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host. L'host è specificato da una matrice di indirizzi IP e da un numero di porta.The host is specified by an array of IP addresses and a port number.

Connect(String, Int32)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host. L'host viene specificato da un nome host e da un numero di porta.The host is specified by a host name and a port number.

ConnectAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona di una connessione all'host remoto.Begins an asynchronous request for a connection to a remote host.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Avvia una richiesta asincrona di una connessione all'host remoto.Begins an asynchronous request for a connection to a remote host.

Disconnect(Boolean)

Chiude la connessione al socket consentendo di riutilizzare il socket.Closes the socket connection and allows reuse of the socket.

DisconnectAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona di disconnessione da un endpoint remoto.Begins an asynchronous request to disconnect from a remote endpoint.

Dispose()

Rilascia tutte le risorse usate dall'istanza corrente della classe Socket.Releases all resources used by the current instance of the Socket class.

Dispose(Boolean)

Rilascia le risorse non gestite usate da Socket e, facoltativamente, elimina le risorse gestite.Releases the unmanaged resources used by the Socket, and optionally disposes of the managed resources.

DuplicateAndClose(Int32)

Duplica il riferimento al socket per il processo di destinazione e chiude il socket per tale processo.Duplicates the socket reference for the target process, and closes the socket for this process.

EndAccept(Byte[], IAsyncResult)

Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Questo metodo restituisce un buffer contenente i dati iniziali trasferiti.This method returns a buffer that contains the initial data transferred.

EndAccept(Byte[], Int32, IAsyncResult)

Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Questo metodo restituisce un buffer contenente i dati iniziali e il numero di byte trasferiti.This method returns a buffer that contains the initial data and the number of bytes transferred.

EndAccept(IAsyncResult)

Accetta in modo asincrono una connessione in ingresso e crea un nuovo oggetto Socket per gestire la comunicazione con l'host remoto.Asynchronously accepts an incoming connection attempt and creates a new Socket to handle remote host communication.

EndConnect(IAsyncResult)

Termina una richiesta di connessione sincrona in sospeso.Ends a pending asynchronous connection request.

EndDisconnect(IAsyncResult)

Termina una richiesta di disconnessione asincrona in sospeso.Ends a pending asynchronous disconnect request.

EndReceive(IAsyncResult)

Termina una lettura asincrona in attesa.Ends a pending asynchronous read.

EndReceive(IAsyncResult, SocketError)

Termina una lettura asincrona in attesa.Ends a pending asynchronous read.

EndReceiveFrom(IAsyncResult, EndPoint)

Termina una lettura asincrona in sospeso da uno specifico endpoint.Ends a pending asynchronous read from a specific endpoint.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Termina una lettura asincrona in sospeso da uno specifico endpoint.Ends a pending asynchronous read from a specific endpoint. Questo metodo fornisce inoltre ulteriori informazioni sul pacchetto rispetto a EndReceiveFrom(IAsyncResult, EndPoint).This method also reveals more information about the packet than EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Termina un invio asincrono in attesa.Ends a pending asynchronous send.

EndSend(IAsyncResult, SocketError)

Termina un invio asincrono in attesa.Ends a pending asynchronous send.

EndSendFile(IAsyncResult)

Termina l'invio asincrono di un file in sospeso.Ends a pending asynchronous send of a file.

EndSendTo(IAsyncResult)

Termina un invio asincrono in sospeso a una posizione specifica.Ends a pending asynchronous send to a specific location.

Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.Determines whether the specified object is equal to the current object.

(Ereditato da Object)
Finalize()

Libera le risorse utilizzate dalla classe Socket.Frees resources used by the Socket class.

GetHashCode()

Restituisce un valore hash per un'istanza di Socket.Returns a hash value for a Socket instance.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Restituisce il valore di un'opzione Socket specificata, rappresentata da un oggetto.Returns the value of a specified Socket option, represented as an object.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Restituisce l'impostazione dell'opzione Socket specificata, rappresentata come una matrice di byte.Returns the specified Socket option setting, represented as a byte array.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Restituisce in una matrice il valore dell'opzione di Socket specificata.Returns the value of the specified Socket option in an array.

GetType()

Ottiene l'oggetto Type dell'istanza corrente.Gets the Type of the current instance.

(Ereditato da Object)
IOControl(Int32, Byte[], Byte[])

Imposta le modalità operative di basso livello per il Socket utilizzando codici di controllo numerici.Sets low-level operating modes for the Socket using numerical control codes.

IOControl(IOControlCode, Byte[], Byte[])

Imposta le modalità operative di basso livello per il Socket utilizzando l'enumerazione IOControlCode per specificare i codici di controllo.Sets low-level operating modes for the Socket using the IOControlCode enumeration to specify control codes.

Listen(Int32)

Colloca un Socket in uno stato di attesa.Places a Socket in a listening state.

MemberwiseClone()

Crea una copia superficiale dell'oggetto Object corrente.Creates a shallow copy of the current Object.

(Ereditato da Object)
Poll(Int32, SelectMode)

Determina lo stato del Socket.Determines the status of the Socket.

Receive(Byte[])

Riceve dati in un buffer di ricezione da un oggetto Socket associato.Receives data from a bound Socket into a receive buffer.

Receive(Byte[], Int32, Int32, SocketFlags)

Riceve il numero specificato di byte da un Socket associato nella posizione di offset predefinita del buffer di ricezione, utilizzando il SocketFlags specificato.Receives the specified number of bytes from a bound Socket into the specified offset position of the receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, Int32, SocketFlags, SocketError)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Riceve in un buffer di ricezione il numero specificato di byte di dati da un oggetto Socket associato, utilizzando l'oggetto SocketFlags specificato.Receives the specified number of bytes of data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], SocketFlags)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Riceve dati da un Socket associato nell'elenco dei buffer di ricezione.Receives data from a bound Socket into the list of receive buffers.

Receive(IList<ArraySegment<Byte>>, SocketFlags)

Riceve dati in un elenco di buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Riceve dati in un elenco di buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(Span<Byte>)

Riceve dati in un buffer di ricezione da un oggetto Socket associato.Receives data from a bound Socket into a receive buffer.

Receive(Span<Byte>, SocketFlags)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

Riceve dati in un buffer di ricezione da un Socket associato, utilizzando il SocketFlags specificato.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

ReceiveAsync(SocketAsyncEventArgs)

Avvia una richiesta asincrona per ricevere dati da un oggetto Socket connesso.Begins an asynchronous request to receive data from a connected Socket object.

ReceiveFrom(Byte[], EndPoint)

Riceve un datagramma nel buffer di dati e memorizza l'endpoint.Receives a datagram into the data buffer and stores the endpoint.

ReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer di dati usando l'oggetto SocketFlags specificato e archivia l'endpoint.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], Int32, SocketFlags, EndPoint)

Riceve il numero di byte specificato nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.Receives the specified number of bytes into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Riceve un datagramma nel buffer di dati, utilizzando l'oggetto SocketFlags specificato e memorizza l'endpoint.Receives a datagram into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

Inizia a ricevere dati in modalità asincrona da un dispositivo di rete specificato.Begins to asynchronously receive data from a specified network device.

ReceiveMessageFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, IPPacketInformation)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto SocketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Avvia la ricezione asincrona del numero di byte specificato in una posizione specificata nel buffer di dati, utilizzando l'oggetto SocketFlags specificato, e memorizza l'endpoint e le informazioni sui pacchetti.Begins to asynchronously receive the specified number of bytes of data into the specified location in the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

Select(IList, IList, IList, Int32)

Determina lo stato di uno o più socket.Determines the status of one or more sockets.

Send(Byte[])

Invia dati a un Socket connesso.Sends data to a connected Socket.

Send(Byte[], Int32, Int32, SocketFlags)

Invia il numero specificato di byte di dati a un oggetto Socket connesso, a partire dall'offset specificato e usando l'oggetto SocketFlags specificato.Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags.

Send(Byte[], Int32, Int32, SocketFlags, SocketError)

Invia il numero specificato di byte di dati a un oggetto Socket connesso, a partire dall'offset specificato e utilizzando l'oggetto SocketFlags specificato.Sends the specified number of bytes of data to a connected Socket, starting at the specified offset, and using the specified SocketFlags

Send(Byte[], Int32, SocketFlags)

Invia il numero specificato di byte di dati a un oggetto Socket connesso, utilizzando l'oggetto SocketFlags specificato.Sends the specified number of bytes of data to a connected Socket, using the specified SocketFlags.

Send(Byte[], SocketFlags)

Invia dati a un oggetto Socket connesso utilizzando l'oggetto SocketFlags specificato.Sends data to a connected Socket using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>)

Invia l'insieme di buffer dell'elenco a un Socket connesso.Sends the set of buffers in the list to a connected Socket.

Send(IList<ArraySegment<Byte>>, SocketFlags)

Invia l'insieme di buffer dell'elenco a un Socket connesso utilizzando i SocketFlags specificati.Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>, SocketFlags, SocketError)

Invia l'insieme di buffer dell'elenco a un Socket connesso utilizzando i SocketFlags specificati.Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(ReadOnlySpan<Byte>)

Invia dati a un Socket connesso.Sends data to a connected Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Invia dati a un oggetto Socket connesso utilizzando l'oggetto SocketFlags specificato.Sends data to a connected Socket using the specified SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Invia dati a un oggetto Socket connesso utilizzando l'oggetto SocketFlags specificato.Sends data to a connected Socket using the specified SocketFlags.

SendAsync(SocketAsyncEventArgs)

Invia i dati in modo asincrono a un oggetto Socket connesso.Sends data asynchronously to a connected Socket object.

SendFile(String)

Invia il file fileName a un oggetto connesso Socket con il flag di trasmissione UseDefaultWorkerThread.Sends the file fileName to a connected Socket object with the UseDefaultWorkerThread transmit flag.

SendFile(String, Byte[], Byte[], TransmitFileOptions)

Invia il file fileName e i buffer di dati a un oggetto Socket connesso usando il valore di TransmitFileOptions specificato.Sends the file fileName and buffers of data to a connected Socket object using the specified TransmitFileOptions value.

SendPacketsAsync(SocketAsyncEventArgs)

Invia in modo asincrono un insieme di file o di buffer di dati in memoria a un oggetto Socket connesso.Sends a collection of files or in memory data buffers asynchronously to a connected Socket object.

SendTo(Byte[], EndPoint)

Invia dati a un endpoint specifico.Sends data to the specified endpoint.

SendTo(Byte[], Int32, Int32, SocketFlags, EndPoint)

Invia il numero di byte di dati specificato all'endpoint specificato, a partire dalla posizione specificata nel buffer, utilizzando l'oggetto SocketFlags specificato.Sends the specified number of bytes of data to the specified endpoint, starting at the specified location in the buffer, and using the specified SocketFlags.

SendTo(Byte[], Int32, SocketFlags, EndPoint)

Invia il numero specificato di byte di dati all'endpoint specificato, utilizzando l'oggetto SocketFlags specificato.Sends the specified number of bytes of data to the specified endpoint using the specified SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

Invia dati a un endpoint specifico utilizzando l'oggetto SocketFlags specificato.Sends data to a specific endpoint using the specified SocketFlags.

SendToAsync(SocketAsyncEventArgs)

Invia i dati in modo asincrono a un host remoto specifico.Sends data asynchronously to a specific remote host.

SetIPProtectionLevel(IPProtectionLevel)

Imposta il livello di protezione IP in un socket.Set the IP protection level on a socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Imposta l'opzione Socket specificata sul valore Boolean specificato.Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Imposta l'opzione Socket specificata sul valore specificato, rappresentato come una matrice di byte.Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Imposta l'opzione Socket specificata sull'intero specificato.Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Imposta l'opzione Socket specificata sul valore specificato, rappresentato come un oggetto.Sets the specified Socket option to the specified value, represented as an object.

Shutdown(SocketShutdown)

Disabilita le operazioni di invio e di ricezione su un Socket.Disables sends and receives on a Socket.

ToString()

Restituisce una stringa che rappresenta l'oggetto corrente.Returns a string that represents the current object.

(Ereditato da Object)

Implementazioni dell'interfaccia esplicita

IDisposable.Dispose()

Rilascia tutte le risorse usate da Socket.Releases all resources used by the Socket.

Metodi di estensione

AcceptAsync(Socket)

Esegue un'operazione asincrona per accettare un tentativo di connessione in ingresso nel socket.Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

AcceptAsync(Socket, Socket)

Esegue un'operazione asincrona per accettare un tentativo di connessione in ingresso nel socket.Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

ConnectAsync(Socket, EndPoint)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host.

ConnectAsync(Socket, IPAddress, Int32)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host. L'host è specificato da un indirizzo IP e da un numero di porta.The host is specified by an IP address and a port number.

ConnectAsync(Socket, IPAddress[], Int32)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host. L'host è specificato da una matrice di indirizzi IP e da un numero di porta.The host is specified by an array of IP addresses and a port number.

ConnectAsync(Socket, String, Int32)

Stabilisce una connessione a un host remoto.Establishes a connection to a remote host. L'host viene specificato da un nome host e da un numero di porta.The host is specified by a host name and a port number.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Riceve i dati da un socket connesso.Receives data from a connected socket.

ReceiveAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Riceve i dati da un socket connesso.Receives data from a connected socket.

ReceiveAsync(Socket, Memory<Byte>, SocketFlags, CancellationToken)

Riceve i dati da un socket connesso.Receives data from a connected socket.

ReceiveFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve i dati da un dispositivo di rete specificato.Receives data from a specified network device.

ReceiveMessageFromAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Riceve il numero specificato di byte di dati nella posizione specificata del buffer dei dati usando l'oggetto SocketFlags specificato e archivia le informazioni dell'endpoint e del pacchetto.Receives the specified number of bytes of data into the specified location of the data buffer, using the specified SocketFlags, and stores the endpoint and packet information.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Invia i dati a un socket connesso.Sends data to a connected socket.

SendAsync(Socket, IList<ArraySegment<Byte>>, SocketFlags)

Invia i dati a un socket connesso.Sends data to a connected socket.

SendAsync(Socket, ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Invia i dati a un socket connesso.Sends data to a connected socket.

SendToAsync(Socket, ArraySegment<Byte>, SocketFlags, EndPoint)

Invia i dati in modo asincrono a un host remoto specifico.Sends data asynchronously to a specific remote host.

Sicurezza

SocketPermission
Per stabilire una connessione in uscita o accettare una richiesta in ingresso.To establish an outgoing connection or accept an incoming request.

Si applica a

Thread safety

Le istanze di questa classe sono thread-safe.Instances of this class are thread safe.

Vedi anche