Socket Klasa

Definicja

Implementuje interfejs Berkeley Sockets.Implements the Berkeley sockets interface.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Dziedziczenie
Socket
Implementuje

Przykłady

Poniższy przykład kodu pokazuje, jak Klasa Socket może być używana do wysyłania danych do serwera HTTP i odbierania odpowiedzi.The following code example shows how the Socket class can be used to send data to an HTTP server and receive the response. Ten przykład blokuje do momentu otrzymania całej strony.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  

Uwagi

Klasa Socket udostępnia bogaty zestaw metod i właściwości komunikacji sieciowej.The Socket class provides a rich set of methods and properties for network communications. Klasa Socket umożliwia przeprowadzenie synchronicznego i asynchronicznego transferu danych przy użyciu dowolnego protokołu komunikacji wymienionego w ProtocolType Enumeration.The Socket class allows you to perform both synchronous and asynchronous data transfer using any of the communication protocols listed in the ProtocolType enumeration.

Klasa Socket jest zgodna ze wzorcem nazewnictwa .NET Framework dla metod asynchronicznych.The Socket class follows the .NET Framework naming pattern for asynchronous methods. Na przykład metoda synchroniczna Receive odpowiada metodom BeginReceive asynchronicznym i EndReceive.For example, the synchronous Receive method corresponds to the asynchronous BeginReceive and EndReceive methods.

Jeśli aplikacja wymaga tylko jednego wątku podczas wykonywania, należy użyć następujących metod, które są przeznaczone do trybu operacji synchronicznej.If your application only requires one thread during execution, use the following methods, which are designed for synchronous operation mode.

  • Jeśli używasz protokołu opartego na połączeniu, takiego jak TCP, serwer może nasłuchiwać połączeń przy użyciu metody Listen.If you are using a connection-oriented protocol such as TCP, your server can listen for connections using the Listen method. Metoda Accept przetwarza wszystkie przychodzące żądania połączenia i zwraca Socket, za pomocą którego można komunikować dane z hostem zdalnym.The Accept method processes any incoming connection requests and returns a Socket that you can use to communicate data with the remote host. Użyj tej zwróconej Socket, aby wywołać metodę Send lub Receive.Use this returned Socket to call the Send or Receive method. Przed wywołaniem metody Listen Wywołaj metodę Bind, jeśli chcesz określić lokalny adres IP i numer portu.Call the Bind method prior to calling the Listen method if you want to specify the local IP address and port number. Użyj numeru portu równego zero, jeśli chcesz, aby źródłowy Dostawca usługi przypisał dla Ciebie bezpłatny port.Use a port number of zero if you want the underlying service provider to assign a free port for you. Jeśli chcesz nawiązać połączenie z hostem nasłuchiwania, wywołaj metodę Connect.If you want to connect to a listening host, call the Connect method. Aby przekazać dane, wywołaj metodę Send lub Receive.To communicate data, call the Send or Receive method.

  • Jeśli używasz protokołu bezpołączeniowego, takiego jak UDP, nie musisz nasłuchiwać połączeń w ogóle.If you are using a connectionless protocol such as UDP, you do not need to listen for connections at all. Wywołaj metodę ReceiveFrom, aby akceptować wszystkie przychodzące datagramy.Call the ReceiveFrom method to accept any incoming datagrams. Użyj metody SendTo, aby wysłać datagramy do hosta zdalnego.Use the SendTo method to send datagrams to a remote host.

Aby przetwarzać komunikację przy użyciu oddzielnych wątków podczas wykonywania, należy użyć następujących metod, które są przeznaczone do trybu operacji asynchronicznej.To process communications using separate threads during execution, use the following methods, which are designed for asynchronous operation mode.

W przypadku wykonywania wielu operacji asynchronicznych w gnieździe nie są one koniecznie wykonywane w kolejności, w której zostały uruchomione.If you perform multiple asynchronous operations on a socket, they do not necessarily complete in the order in which they are started.

Po zakończeniu wysyłania i otrzymywania danych Użyj metody Shutdown, aby wyłączyć Socket.When you are finished sending and receiving data, use the Shutdown method to disable the Socket. Po wywołaniu ShutdownWywołaj metodę Close, aby zwolnić wszystkie zasoby skojarzone z Socket.After calling Shutdown, call the Close method to release all resources associated with the Socket.

Klasa Socket umożliwia konfigurowanie Socket przy użyciu metody SetSocketOption.The Socket class allows you to configure your Socket using the SetSocketOption method. Pobierz te ustawienia przy użyciu metody GetSocketOption.Retrieve these settings using the GetSocketOption method.

Uwaga

Jeśli piszesz stosunkowo prostą aplikację i nie potrzebujesz maksymalnej wydajności, rozważ użycie TcpClient, TcpListeneri UdpClient.If you are writing a relatively simple application and do not require maximum performance, consider using TcpClient, TcpListener, and UdpClient. Klasy te zapewniają prostsze i bardziej przyjazny dla użytkownika interfejs do Socket komunikacji.These classes provide a simpler and more user-friendly interface to Socket communications.

Konstruktory

Socket(AddressFamily, SocketType, ProtocolType)

Inicjuje nowe wystąpienie klasy Socket przy użyciu określonej rodziny adresów, typu gniazda i protokołu.Initializes a new instance of the Socket class using the specified address family, socket type and protocol.

Socket(SocketInformation)

Inicjuje nowe wystąpienie klasy Socket przy użyciu określonej wartości zwróconej z DuplicateAndClose(Int32).Initializes a new instance of the Socket class using the specified value returned from DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Inicjuje nowe wystąpienie klasy Socket przy użyciu określonego typu gniazda i protokołu.Initializes a new instance of the Socket class using the specified socket type and protocol.

Właściwości

AddressFamily

Pobiera rodzinę adresów Socket.Gets the address family of the Socket.

Available

Pobiera ilość danych odebranych z sieci i jest dostępna do odczytu.Gets the amount of data that has been received from the network and is available to be read.

Blocking

Pobiera lub ustawia wartość wskazującą, czy Socket jest w trybie blokowania.Gets or sets a value that indicates whether the Socket is in blocking mode.

Connected

Pobiera wartość wskazującą, czy Socket jest połączona z hostem zdalnym w ramach ostatniej Send lub Receive operacji.Gets a value that indicates whether a Socket is connected to a remote host as of the last Send or Receive operation.

DontFragment

Pobiera lub ustawia wartość Boolean, która określa, czy Socket zezwala na fragmentację protokołu internetowego (IP) datagramów.Gets or sets a Boolean value that specifies whether the Socket allows Internet Protocol (IP) datagrams to be fragmented.

DualMode

Pobiera lub ustawia wartość Boolean, która określa, czy Socket jest gniazdem dwukierunkowym używanym dla protokołów IPv4 i IPv6.Gets or sets a Boolean value that specifies whether the Socket is a dual-mode socket used for both IPv4 and IPv6.

EnableBroadcast

Pobiera lub ustawia wartość Boolean, która określa, czy Socket może wysyłać lub odbierać pakiety emisji.Gets or sets a Boolean value that specifies whether the Socket can send or receive broadcast packets.

ExclusiveAddressUse

Pobiera lub ustawia wartość Boolean, która określa, czy Socket zezwala na powiązanie tylko jednego procesu z portem.Gets or sets a Boolean value that specifies whether the Socket allows only one process to bind to a port.

Handle

Pobiera uchwyt systemu operacyjnego dla Socket.Gets the operating system handle for the Socket.

IsBound

Pobiera wartość wskazującą, czy Socket jest powiązany z określonym portem lokalnym.Gets a value that indicates whether the Socket is bound to a specific local port.

LingerState

Pobiera lub ustawia wartość określającą, czy Socket będzie opóźniać zamykanie gniazda w trakcie próby wysłania wszystkich oczekujących danych.Gets or sets a value that specifies whether the Socket will delay closing a socket in an attempt to send all pending data.

LocalEndPoint

Pobiera lokalny punkt końcowy.Gets the local endpoint.

MulticastLoopback

Pobiera lub ustawia wartość określającą, czy wychodzące pakiety multiemisji są dostarczane do aplikacji wysyłającej.Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.

NoDelay

Pobiera lub ustawia wartość Boolean, która określa, czy Socket strumienia używa algorytmu nagle.Gets or sets a Boolean value that specifies whether the stream Socket is using the Nagle algorithm.

OSSupportsIPv4

Wskazuje, czy podstawowy system operacyjny i karty sieciowe obsługują protokół internetowy w wersji 4 (IPv4).Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).

OSSupportsIPv6

Wskazuje, czy podstawowy system operacyjny i karty sieciowe obsługują protokół internetowy w wersji 6 (IPv6).Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).

ProtocolType

Pobiera typ protokołu Socket.Gets the protocol type of the Socket.

ReceiveBufferSize

Pobiera lub ustawia wartość określającą rozmiar buforu odbioru Socket.Gets or sets a value that specifies the size of the receive buffer of the Socket.

ReceiveTimeout

Pobiera lub ustawia wartość określającą czas, po upływie którego zostanie przekroczony limit czasu synchronicznego wywołania Receive.Gets or sets a value that specifies the amount of time after which a synchronous Receive call will time out.

RemoteEndPoint

Pobiera zdalny punkt końcowy.Gets the remote endpoint.

SafeHandle

Pobiera SafeSocketHandle, który reprezentuje uchwyt gniazda, który jest hermetyzowany z bieżącym obiektem Socket.Gets a SafeSocketHandle that represents the socket handle that the current Socket object encapsulates.

SendBufferSize

Pobiera lub ustawia wartość określającą rozmiar buforu wysyłania Socket.Gets or sets a value that specifies the size of the send buffer of the Socket.

SendTimeout

Pobiera lub ustawia wartość określającą czas, po upływie którego zostanie przekroczony limit czasu synchronicznego wywołania Send.Gets or sets a value that specifies the amount of time after which a synchronous Send call will time out.

SocketType

Pobiera typ Socket.Gets the type of the Socket.

SupportsIPv4

Pobiera wartość wskazującą, czy obsługa protokołu IPv4 jest dostępna i włączona na bieżącym hoście.Gets a value indicating whether IPv4 support is available and enabled on the current host.

SupportsIPv6

Pobiera wartość wskazującą, czy platforma obsługuje protokół IPv6 dla niektórych przestarzałych elementów członkowskich Dns.Gets a value that indicates whether the Framework supports IPv6 for certain obsolete Dns members.

Ttl

Pobiera lub ustawia wartość określającą wartość czasu wygaśnięcia (TTL) pakietów protokołu IP wysyłanych przez Socket.Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the Socket.

UseOnlyOverlappedIO

Określa, czy gniazdo ma korzystać tylko z nakładających się trybów we/wy.Specifies whether the socket should only use Overlapped I/O mode.

Metody

Accept()

Tworzy nowy Socket dla nowo utworzonego połączenia.Creates a new Socket for a newly created connection.

AcceptAsync(SocketAsyncEventArgs)

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego.Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(AsyncCallback, Object)

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego.Begins an asynchronous operation to accept an incoming connection attempt.

BeginAccept(Int32, AsyncCallback, Object)

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego i odebrania pierwszego bloku danych wysyłanych przez aplikację kliencką.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)

Rozpoczyna operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego z określonego gniazda i odbioru pierwszego bloku danych wysłanych przez aplikację kliencką.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)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection. Host jest określony przez IPAddress i numer portu.The host is specified by an IPAddress and a port number.

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

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection. Host jest określony przez IPAddress tablicę i numer portu.The host is specified by an IPAddress array and a port number.

BeginConnect(String, Int32, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a remote host connection. Host jest określony przez nazwę hosta i numer portu.The host is specified by a host name and a port number.

BeginDisconnect(Boolean, AsyncCallback, Object)

Rozpoczyna asynchroniczne żądanie rozłączenia ze zdalnego punktu końcowego.Begins an asynchronous request to disconnect from a remote endpoint.

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

Rozpoczyna asynchroniczne odbieranie danych z połączonej Socket.Begins to asynchronously receive data from a connected Socket.

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

Rozpoczyna asynchroniczne odbieranie danych z połączonej Socket.Begins to asynchronously receive data from a connected Socket.

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

Rozpoczyna asynchroniczne odbieranie danych z połączonej Socket.Begins to asynchronously receive data from a connected Socket.

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

Rozpoczyna asynchroniczne odbieranie danych z połączonej Socket.Begins to asynchronously receive data from a connected Socket.

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

Rozpoczyna asynchroniczne odbieranie danych z określonego urządzenia sieciowego.Begins to asynchronously receive data from a specified network device.

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

Rozpoczyna asynchroniczne odbieranie określonej liczby bajtów danych w określonej lokalizacji w buforze danych przy użyciu określonego SocketFlagsi przechowywanie informacji o punkcie końcowym i pakiecie.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)

Asynchronicznie wysyła dane do połączonej Socket.Sends data asynchronously to a connected Socket.

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

Asynchronicznie wysyła dane do połączonej Socket.Sends data asynchronously to a connected Socket.

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

Asynchronicznie wysyła dane do połączonej Socket.Sends data asynchronously to a connected Socket.

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

Asynchronicznie wysyła dane do połączonej Socket.Sends data asynchronously to a connected Socket.

BeginSendFile(String, AsyncCallback, Object)

Wysyła fileName pliku do połączonego obiektu Socket przy użyciu flagi UseDefaultWorkerThread.Sends the file fileName to a connected Socket object using the UseDefaultWorkerThread flag.

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

Wysyła plik i bufory danych asynchronicznie do połączonego obiektu Socket.Sends a file and buffers of data asynchronously to a connected Socket object.

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

Wysyła dane asynchronicznie do określonego hosta zdalnego.Sends data asynchronously to a specific remote host.

Bind(EndPoint)

Kojarzy Socket z lokalnym punktem końcowym.Associates a Socket with a local endpoint.

CancelConnectAsync(SocketAsyncEventArgs)

Anuluje asynchroniczne żądanie połączenia z hostem zdalnym.Cancels an asynchronous request for a remote host connection.

Close()

Zamyka Socket połączenie i zwalnia wszystkie skojarzone z nim zasoby.Closes the Socket connection and releases all associated resources.

Close(Int32)

Zamyka Socket połączenie i zwalnia wszystkie skojarzone zasoby z określonym limitem czasu, aby umożliwić wysyłanie w kolejce danych.Closes the Socket connection and releases all associated resources with a specified timeout to allow queued data to be sent.

Connect(EndPoint)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host.

Connect(IPAddress, Int32)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host. Host jest określony przez adres IP i numer portu.The host is specified by an IP address and a port number.

Connect(IPAddress[], Int32)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host. Host jest określony przez tablicę adresów IP i numer portu.The host is specified by an array of IP addresses and a port number.

Connect(String, Int32)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host. Host jest określony przez nazwę hosta i numer portu.The host is specified by a host name and a port number.

ConnectAsync(SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a connection to a remote host.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie połączenia z hostem zdalnym.Begins an asynchronous request for a connection to a remote host.

Disconnect(Boolean)

Zamyka połączenie gniazda i umożliwia ponowne użycie gniazda.Closes the socket connection and allows reuse of the socket.

DisconnectAsync(SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie rozłączenia ze zdalnego punktu końcowego.Begins an asynchronous request to disconnect from a remote endpoint.

Dispose()

Zwalnia wszystkie zasoby używane przez bieżące wystąpienie klasy Socket.Releases all resources used by the current instance of the Socket class.

Dispose(Boolean)

Zwalnia zasoby niezarządzane używane przez element Socket i opcjonalnie usuwa zarządzane zasoby.Releases the unmanaged resources used by the Socket, and optionally disposes of the managed resources.

DuplicateAndClose(Int32)

Duplikuje odwołanie do gniazda dla procesu docelowego i zamyka gniazdo dla tego procesu.Duplicates the socket reference for the target process, and closes the socket for this process.

EndAccept(Byte[], IAsyncResult)

Asynchronicznie akceptuje próbę połączenia przychodzącego i tworzy nowy obiekt Socket do obsługi komunikacji z hostem zdalnym.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Ta metoda zwraca bufor zawierający dane wstępne przesłane.This method returns a buffer that contains the initial data transferred.

EndAccept(Byte[], Int32, IAsyncResult)

Asynchronicznie akceptuje próbę połączenia przychodzącego i tworzy nowy obiekt Socket do obsługi komunikacji z hostem zdalnym.Asynchronously accepts an incoming connection attempt and creates a new Socket object to handle remote host communication. Ta metoda zwraca bufor zawierający dane początkowe oraz liczbę przesłanych bajtów.This method returns a buffer that contains the initial data and the number of bytes transferred.

EndAccept(IAsyncResult)

Asynchronicznie akceptuje próbę połączenia przychodzącego i tworzy nowy Socket do obsługi komunikacji z hostem zdalnym.Asynchronously accepts an incoming connection attempt and creates a new Socket to handle remote host communication.

EndConnect(IAsyncResult)

Zakończenie oczekiwania na asynchroniczne żądanie połączenia.Ends a pending asynchronous connection request.

EndDisconnect(IAsyncResult)

Przerywa oczekujące asynchroniczne żądanie rozłączenia.Ends a pending asynchronous disconnect request.

EndReceive(IAsyncResult)

Zakończenie oczekiwania na odczyt asynchroniczny.Ends a pending asynchronous read.

EndReceive(IAsyncResult, SocketError)

Zakończenie oczekiwania na odczyt asynchroniczny.Ends a pending asynchronous read.

EndReceiveFrom(IAsyncResult, EndPoint)

Zamyka oczekujące asynchroniczne odczyt z określonego punktu końcowego.Ends a pending asynchronous read from a specific endpoint.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Zamyka oczekujące asynchroniczne odczyt z określonego punktu końcowego.Ends a pending asynchronous read from a specific endpoint. Ta metoda ujawnia również więcej informacji na temat pakietu niż EndReceiveFrom(IAsyncResult, EndPoint).This method also reveals more information about the packet than EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Zakończenie oczekiwania na wysłanie asynchroniczne.Ends a pending asynchronous send.

EndSend(IAsyncResult, SocketError)

Zakończenie oczekiwania na wysłanie asynchroniczne.Ends a pending asynchronous send.

EndSendFile(IAsyncResult)

Zamyka oczekujące asynchroniczne wysyłanie pliku.Ends a pending asynchronous send of a file.

EndSendTo(IAsyncResult)

Zamyka oczekujące wysyłanie asynchroniczne do określonej lokalizacji.Ends a pending asynchronous send to a specific location.

Equals(Object)

Określa, czy określony obiekt jest równy bieżącemu obiektowi.Determines whether the specified object is equal to the current object.

(Odziedziczone po Object)
Finalize()

Zwalnia zasoby używane przez klasę Socket.Frees resources used by the Socket class.

GetHashCode()

Zwraca wartość skrótu dla wystąpienia Socket.Returns a hash value for a Socket instance.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Zwraca wartość określonej Socket opcji reprezentowanej jako obiekt.Returns the value of a specified Socket option, represented as an object.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Zwraca określone ustawienie opcji Socket reprezentowane jako tablica bajtów.Returns the specified Socket option setting, represented as a byte array.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Zwraca wartość określonej Socket opcji w tablicy.Returns the value of the specified Socket option in an array.

GetType()

Pobiera Type bieżącego wystąpienia.Gets the Type of the current instance.

(Odziedziczone po Object)
IOControl(Int32, Byte[], Byte[])

Ustawia Tryby operacyjne niskiego poziomu dla Socket przy użyciu kodów kontroli liczbowej.Sets low-level operating modes for the Socket using numerical control codes.

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

Ustawia Tryby operacyjne niskiego poziomu dla Socket przy użyciu wyliczenia IOControlCode do określenia kodów kontroli.Sets low-level operating modes for the Socket using the IOControlCode enumeration to specify control codes.

Listen(Int32)

Umieszcza Socket w stanie nasłuchiwania.Places a Socket in a listening state.

MemberwiseClone()

Tworzy skróconą kopię bieżącego Object.Creates a shallow copy of the current Object.

(Odziedziczone po Object)
Poll(Int32, SelectMode)

Określa stan Socket.Determines the status of the Socket.

Receive(Byte[])

Odbiera dane z powiązanej Socket w buforze odbioru.Receives data from a bound Socket into a receive buffer.

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

Odbiera określoną liczbę bajtów od powiązanej Socket do określonej pozycji przesunięcia buforu odbioru przy użyciu podanej SocketFlags.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)

Odbiera dane z powiązanej Socket w buforze odbioru przy użyciu określonego SocketFlags.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Odbiera określoną liczbę bajtów danych z powiązanej Socket w buforze odbioru przy użyciu określonego SocketFlags.Receives the specified number of bytes of data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Byte[], SocketFlags)

Odbiera dane z powiązanej Socket w buforze odbioru przy użyciu określonego SocketFlags.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Odbiera dane z powiązanej Socket z listą buforów odbioru.Receives data from a bound Socket into the list of receive buffers.

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

Odbiera dane z powiązanej Socket do listy buforów odbioru przy użyciu podanej SocketFlags.Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

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

Odbiera dane z powiązanej Socket do listy buforów odbioru przy użyciu podanej SocketFlags.Receives data from a bound Socket into the list of receive buffers, using the specified SocketFlags.

Receive(Span<Byte>)

Odbiera dane z powiązanej Socket w buforze odbioru.Receives data from a bound Socket into a receive buffer.

Receive(Span<Byte>, SocketFlags)

Odbiera dane z powiązanej Socket w buforze odbioru przy użyciu określonego SocketFlags.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

Odbiera dane z powiązanej Socket w buforze odbioru przy użyciu określonego SocketFlags.Receives data from a bound Socket into a receive buffer, using the specified SocketFlags.

ReceiveAsync(SocketAsyncEventArgs)

Rozpoczyna asynchroniczne żądanie odbierania danych z połączonego obiektu Socket.Begins an asynchronous request to receive data from a connected Socket object.

ReceiveFrom(Byte[], EndPoint)

Odbiera datagram w buforze danych i przechowuje punkt końcowy.Receives a datagram into the data buffer and stores the endpoint.

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

Odbiera określoną liczbę bajtów danych w określonej lokalizacji w buforze danych przy użyciu określonego SocketFlagsi zapisuje punkt końcowy.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)

Odbiera określoną liczbę bajtów w buforze danych przy użyciu określonego SocketFlagsi zapisuje punkt końcowy.Receives the specified number of bytes into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Odbiera datagram do buforu danych przy użyciu określonego SocketFlagsi przechowuje punkt końcowy.Receives a datagram into the data buffer, using the specified SocketFlags, and stores the endpoint.

ReceiveFromAsync(SocketAsyncEventArgs)

Rozpoczyna asynchroniczne odbieranie danych z określonego urządzenia sieciowego.Begins to asynchronously receive data from a specified network device.

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

Odbiera określoną liczbę bajtów danych w określonej lokalizacji w buforze danych, używając określonej SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.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)

Rozpoczyna asynchroniczne odbieranie określonej liczby bajtów danych w określonej lokalizacji w buforze danych przy użyciu określonego SocketFlagsi przechowywanie informacji o punkcie końcowym i pakiecie.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)

Określa stan co najmniej jednego gniazda.Determines the status of one or more sockets.

Send(Byte[])

Wysyła dane do połączonej Socket.Sends data to a connected Socket.

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

Wysyła określoną liczbę bajtów danych do połączonej Socket, rozpoczynając od określonego przesunięcia i używając określonego SocketFlags.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)

Wysyła określoną liczbę bajtów danych do połączonej Socket, rozpoczynając od określonego przesunięcia i używając określonego SocketFlagsSends 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)

Wysyła określoną liczbę bajtów danych do połączonej Socketprzy użyciu podanej SocketFlags.Sends the specified number of bytes of data to a connected Socket, using the specified SocketFlags.

Send(Byte[], SocketFlags)

Wysyła dane do połączonej Socket przy użyciu określonego SocketFlags.Sends data to a connected Socket using the specified SocketFlags.

Send(IList<ArraySegment<Byte>>)

Wysyła zestaw buforów na liście do połączonej Socket.Sends the set of buffers in the list to a connected Socket.

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

Wysyła zestaw buforów na liście do połączonej Socketprzy użyciu określonego SocketFlags.Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

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

Wysyła zestaw buforów na liście do połączonej Socketprzy użyciu określonego SocketFlags.Sends the set of buffers in the list to a connected Socket, using the specified SocketFlags.

Send(ReadOnlySpan<Byte>)

Wysyła dane do połączonej Socket.Sends data to a connected Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Wysyła dane do połączonej Socket przy użyciu określonego SocketFlags.Sends data to a connected Socket using the specified SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Wysyła dane do połączonej Socket przy użyciu określonego SocketFlags.Sends data to a connected Socket using the specified SocketFlags.

SendAsync(SocketAsyncEventArgs)

Asynchronicznie wysyła dane do połączonego obiektu Socket.Sends data asynchronously to a connected Socket object.

SendFile(String)

Wysyła fileName pliku do połączonego obiektu Socket ze flagą wysyłania UseDefaultWorkerThread.Sends the file fileName to a connected Socket object with the UseDefaultWorkerThread transmit flag.

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

Wysyła fileName i buforów danych do połączonego obiektu Socket przy użyciu określonej wartości TransmitFileOptions.Sends the file fileName and buffers of data to a connected Socket object using the specified TransmitFileOptions value.

SendPacketsAsync(SocketAsyncEventArgs)

Wysyła kolekcję plików lub buforów danych pamięci asynchronicznie do połączonego obiektu Socket.Sends a collection of files or in memory data buffers asynchronously to a connected Socket object.

SendTo(Byte[], EndPoint)

Wysyła dane do określonego punktu końcowego.Sends data to the specified endpoint.

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

Wysyła określoną liczbę bajtów danych do określonego punktu końcowego, rozpoczynając od określonej lokalizacji w buforze i używając określonego SocketFlags.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)

Wysyła określoną liczbę bajtów danych do określonego punktu końcowego przy użyciu określonego SocketFlags.Sends the specified number of bytes of data to the specified endpoint using the specified SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

Wysyła dane do określonego punktu końcowego przy użyciu określonego SocketFlags.Sends data to a specific endpoint using the specified SocketFlags.

SendToAsync(SocketAsyncEventArgs)

Wysyła dane asynchronicznie do określonego hosta zdalnego.Sends data asynchronously to a specific remote host.

SetIPProtectionLevel(IPProtectionLevel)

Ustaw poziom ochrony adresów IP w gnieździe.Set the IP protection level on a socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Ustawia określoną opcję Socket określoną wartość Boolean.Sets the specified Socket option to the specified Boolean value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Ustawia określony Socket opcję na określoną wartość, reprezentowane jako tablica bajtów.Sets the specified Socket option to the specified value, represented as a byte array.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Ustawia określoną opcję Socket dla określonej wartości całkowitej.Sets the specified Socket option to the specified integer value.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Ustawia określony Socket opcję na określoną wartość, reprezentowane jako obiekt.Sets the specified Socket option to the specified value, represented as an object.

Shutdown(SocketShutdown)

Wyłącza wysyłanie i odbieranie na Socket.Disables sends and receives on a Socket.

ToString()

Zwraca ciąg, który reprezentuje bieżący obiekt.Returns a string that represents the current object.

(Odziedziczone po Object)

Jawne implementacje interfejsu

IDisposable.Dispose()

Zwalnia wszelkie zasoby używane przez element Socket.Releases all resources used by the Socket.

Metody rozszerzania

AcceptAsync(Socket)

Wykonuje operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego w gnieździe.Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

AcceptAsync(Socket, Socket)

Wykonuje operację asynchroniczną w celu zaakceptowania próby połączenia przychodzącego w gnieździe.Performs an asynchronous operation on to accept an incoming connection attempt on the socket.

ConnectAsync(Socket, EndPoint)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host.

ConnectAsync(Socket, IPAddress, Int32)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host. Host jest określony przez adres IP i numer portu.The host is specified by an IP address and a port number.

ConnectAsync(Socket, IPAddress[], Int32)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host. Host jest określony przez tablicę adresów IP i numer portu.The host is specified by an array of IP addresses and a port number.

ConnectAsync(Socket, String, Int32)

Ustanawia połączenie z hostem zdalnym.Establishes a connection to a remote host. Host jest określony przez nazwę hosta i numer portu.The host is specified by a host name and a port number.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Odbiera dane z połączonego gniazda.Receives data from a connected socket.

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

Odbiera dane z połączonego gniazda.Receives data from a connected socket.

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

Odbiera dane z połączonego gniazda.Receives data from a connected socket.

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

Odbiera dane z określonego urządzenia sieciowego.Receives data from a specified network device.

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

Odbiera określoną liczbę bajtów danych w określonej lokalizacji w buforze danych, używając określonej SocketFlagsi przechowuje informacje o punkcie końcowym i pakiecie.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)

Wysyła dane do połączonego gniazda.Sends data to a connected socket.

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

Wysyła dane do połączonego gniazda.Sends data to a connected socket.

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

Wysyła dane do połączonego gniazda.Sends data to a connected socket.

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

Wysyła dane asynchronicznie do określonego hosta zdalnego.Sends data asynchronously to a specific remote host.

Zabezpieczenia

SocketPermission
Aby nawiązać połączenie wychodzące lub zaakceptować żądanie przychodzące.To establish an outgoing connection or accept an incoming request.

Dotyczy

Bezpieczeństwo wątkowe

Wystąpienia tej klasy są bezpieczne wątkowo.Instances of this class are thread safe.

Zobacz też