Socket Класс

Определение

Реализует интерфейс сокетов Беркли.

public ref class Socket : IDisposable
public class Socket : IDisposable
type Socket = class
    interface IDisposable
Public Class Socket
Implements IDisposable
Наследование
Socket
Реализации

Примеры

В следующем примере кода показано, как Socket класс можно использовать для отправки данных на HTTP-сервер и получения ответа. Этот пример блокируется до получения всей страницы.

#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

Комментарии

SocketКласс предоставляет широкий набор методов и свойств для сетевого взаимодействия. SocketКласс позволяет выполнять синхронную и асинхронную передачу данных с помощью любого из протоколов связи, перечисленных в ProtocolType перечислении.

Socketкласс соответствует шаблону именования платформа .NET Framework для асинхронных методов. Например, синхронным Receive методом соответствует асинхронный метод BeginReceive и EndReceive .

Если приложению требуется только один поток во время выполнения, используйте следующие методы, предназначенные для работы в синхронном режиме.

  • Если используется протокол, ориентированный на подключение, например TCP, сервер может прослушивать соединения с помощью Listen метода. AcceptМетод обрабатывает все входящие запросы на подключение и возвращает объект Socket , который можно использовать для передачи данных с удаленного узла. Используйте Socket метод, возвращаемый для Send вызова Receive метода или. Вызовите Bind метод перед вызовом Listen метода, если требуется указать локальный IP-адрес и номер порта. Если вы хотите, чтобы базовый поставщик услуг назначит свободный порт, используйте нулевой номер порта. Если вы хотите подключиться к узлу прослушивания, вызовите Connect метод. Чтобы передать данные, вызовите Send Receive метод или.

  • Если используется протокол без установления соединения, например UDP, нет необходимости прослушивать подключения вообще. Вызовите ReceiveFrom метод, чтобы принимать все входящие датаграммы. Используйте SendTo метод для отправки датаграмм на удаленный узел.

Для обработки обмена данными с помощью отдельных потоков во время выполнения используйте следующие методы, предназначенные для асинхронного режима работы.

  • Если используется протокол, ориентированный на подключение, например TCP, используйте Socket BeginConnect методы, и EndConnect для подключения к узлу прослушивания. Используйте BeginSend методы and EndSend или BeginReceive и EndReceive для асинхронной передачи данных. Входящие запросы на подключение могут обрабатываться с помощью BeginAccept и EndAccept .

  • Если используется протокол без установления соединения, например UDP, можно использовать BeginSendTo и EndSendTo для отправки датаграмм, а также BeginReceiveFrom EndReceiveFrom для получения датаграмм.

При выполнении нескольких асинхронных операций на сокете они не обязательно завершаются в том порядке, в котором они были запущены.

После завершения отправки и получения данных используйте Shutdown метод, чтобы отключить Socket . После вызова Shutdown вызовите Close метод, чтобы освободить все ресурсы, связанные с объектом Socket .

SocketКласс позволяет настроить Socket с помощью SetSocketOption метода. Извлеките эти параметры с помощью GetSocketOption метода.

Примечание

Если вы создаете относительно простое приложение и не требует максимальной производительности, рассмотрите возможность использования TcpClient , TcpListener и UdpClient . Эти классы предоставляют простой и понятный пользователю интерфейс для Socket обмена данными.

Конструкторы

Socket(AddressFamily, SocketType, ProtocolType)

Инициализирует новый экземпляр класса Socket, используя заданные семейство адресов, тип сокета и протокол.

Socket(SafeSocketHandle)

Инициализирует новый экземпляр Socket класса для указанного дескриптора сокета.

Socket(SocketInformation)

Инициализирует новый экземпляр класса Socket с помощью указанного значения, возвращенного из объекта DuplicateAndClose(Int32).

Socket(SocketType, ProtocolType)

Инициализирует новый экземпляр класса Socket, используя указанный тип сокетов и протокол. Если операционная система поддерживает протокол IPv6, этот конструктор создает сокет двойного режима; в противном случае создается сокет IPv4.

Свойства

AddressFamily

Получает семейство адресов объекта Socket.

Available

Возвращает значение, указывающее количество полученных из сети и доступных для чтения данных.

Blocking

Возвращает или задает значение, определяющее, находится ли объект Socket в заблокированном режиме.

Connected

Получает значение, указывающее, подключается ли объект Socket к удаленному узлу в результате последней операции Send или Receive.

DontFragment

Возвращает или задает значение, указывающее, разрешает ли объект Socket выполнение фрагментации датаграмм протокола IP.

DualMode

Возвращает или задает значение, указывающее, является ли Socket сокет двойным режимом, используемым как для IPv4, так и для IPv6.

EnableBroadcast

Возвращает или задает значение Boolean, указывающее, может ли объект Socket производить отправку или прием широковещательных пакетов.

ExclusiveAddressUse

Возвращает или задает значение Boolean, указывающее, разрешает ли объект Socket привязку к порту только одного процесса.

Handle

Возвращает дескриптор операционной системы для объекта Socket.

IsBound

Получает значение, указывающее, привязан ли объект Socket к конкретному локальному порту.

LingerState

Возвращает или задает значение, указывающее, будет ли объект Socket задерживать закрытие сокета при попытке отправки всех отложенных данных.

LocalEndPoint

Возвращает локальную конечную точку.

MulticastLoopback

Возвращает или задает значение, указывающее, могут ли доставляться исходящие пакеты многоадресной рассылки в передающем приложении.

NoDelay

Возвращает или задает значение Boolean, указывающее, используется ли поток Socket в алгоритме Nagle.

OSSupportsIPv4

Указывает, поддерживают ли основная операционная система и сетевые адаптеры протокол IPv4.

OSSupportsIPv6

Указывает, поддерживают ли основная операционная система и сетевые адаптеры протокол IPv6.

OSSupportsUnixDomainSockets

Указывает, поддерживает ли базовая операционная система сокеты доменов UNIX.

ProtocolType

Получает тип протокола объекта Socket.

ReceiveBufferSize

Получает или задает значение, задающее размер приемного буфера объекта Socket.

ReceiveTimeout

Получает или устанавливает значение, указывающее промежуток времени, после которого для синхронного вызова Receive истечет время тайм-аута.

RemoteEndPoint

Возвращает удаленную конечную точку.

SafeHandle

Получает SafeSocketHandle, представляющий дескриптор сокета, инкапсулируемый текущим объектом Socket.

SendBufferSize

Получает или задает значение, определяющее размер буфера передачи объекта Socket.

SendTimeout

Получает или устанавливает значение, указывающее промежуток времени, после которого для синхронного вызова Send истечет время тайм-аута.

SocketType

Возвращает тип службы Socket.

SupportsIPv4
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Возвращает значение, указывающее, доступна ли на текущем узле поддержка протокола IPv4 и включена ли эта функция.

SupportsIPv6
Является устаревшей.
Является устаревшей.
Является устаревшей.
Является устаревшей.

Получает значение, указывающее, поддерживает ли Framework протокол IPv6 для определенных устаревших членов Dns.

Ttl

Получает или задает значение, задающее время существования (TTL) IP-пакетов, отправленных объектом Socket.

UseOnlyOverlappedIO
Является устаревшей.

Возвращает или задает значение, указывающее, должен ли сокет использовать только режим ввода-вывода с перекрытием. В .NET 5 + (включая версии .NET Core) значение всегда равно false .

Методы

Accept()

Создает новый объект Socket для заново созданного подключения.

AcceptAsync()

Принимает входящее подключение.

AcceptAsync(CancellationToken)

Принимает входящее подключение.

AcceptAsync(Socket)

Принимает входящее подключение.

AcceptAsync(Socket, CancellationToken)

Принимает входящее подключение.

AcceptAsync(SocketAsyncEventArgs)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения.

BeginAccept(AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения.

BeginAccept(Int32, AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения и получить первый блок данных, посланных клиентским приложением.

BeginAccept(Socket, Int32, AsyncCallback, Object)

Начинает асинхронную операцию, чтобы принять попытку входящего подключения с указанного сокета и получить первый блок данных, посланных клиентским приложением.

BeginConnect(EndPoint, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу. узел задается объектом IPAddress и номером порта.

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

Начинает выполнение асинхронного запроса для подключения к удаленному узлу. узел задается массивом IPAddress и номером порта.

BeginConnect(String, Int32, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу. Узел задается именем узла и номером порта.

BeginDisconnect(Boolean, AsyncCallback, Object)

Начинает выполнение асинхронного запроса для отключения от удаленной конечной точки.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с подключенного объекта Socket.

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

Начинает выполнение асинхронного приема данных с указанного сетевого устройства.

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

Начинает асинхронный прием заданного числа байтов данных в указанное место буфера данных, используя заданный объект SocketFlags, а также сохраняет конечную точку и информацию пакета.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

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

Выполняет асинхронную передачу данных на подключенный объект Socket.

BeginSendFile(String, AsyncCallback, Object)

Отправляет файл fileName на подключенный объект Socket, используя флаг UseDefaultWorkerThread.

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

Выполняет асинхронную передачу файла и буферов данных на подключенный объект Socket.

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

Асинхронно передает данные на конкретный удаленный узел.

Bind(EndPoint)

Связывает объект Socket с локальной конечной точкой.

CancelConnectAsync(SocketAsyncEventArgs)

Отменяет выполнение асинхронного запроса для подключения к удаленному узлу.

Close()

Закрывает подключение Socket и освобождает все связанные ресурсы.

Close(Int32)

Закрывает подключение Socket и освобождает все связанные ресурсы с заданным временем ожидания, чтобы разрешить отправку данных в очереди.

Connect(EndPoint)

Устанавливает подключение к удаленному узлу.

Connect(IPAddress, Int32)

Устанавливает подключение к удаленному узлу. Узел задается IP-адресом и номером порта.

Connect(IPAddress[], Int32)

Устанавливает подключение к удаленному узлу. Узел задается массивом IP-адресов и номером порта.

Connect(String, Int32)

Устанавливает подключение к удаленному узлу. Узел задается именем узла и номером порта.

ConnectAsync(EndPoint)

Устанавливает подключение к удаленному узлу.

ConnectAsync(EndPoint, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress, Int32)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress[], Int32)

Устанавливает подключение к удаленному узлу.

ConnectAsync(IPAddress[], Int32, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.

ConnectAsync(SocketType, ProtocolType, SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса для подключения к удаленному узлу.

ConnectAsync(String, Int32)

Устанавливает подключение к удаленному узлу.

ConnectAsync(String, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу.

Disconnect(Boolean)

Закрывает подключение к сокету и позволяет повторно его использовать.

DisconnectAsync(Boolean, CancellationToken)

Отключает подключенный сокет от удаленного узла.

DisconnectAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса для отключения от удаленной конечной точки.

Dispose()

Освобождает все ресурсы, используемые текущим экземпляром класса Socket.

Dispose(Boolean)

Освобождает неуправляемые ресурсы, используемые объектом Socket, и при необходимости освобождает также управляемые ресурсы.

DuplicateAndClose(Int32)

Дублирует ссылку сокета для конечного процесса и закрывает сокет для этого процесса.

EndAccept(Byte[], IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом. Этот метод возвращает буфер, который содержит начальные данные для передачи.

EndAccept(Byte[], Int32, IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом. Этот метод возвращает буфер, который содержит начальные данные и число переданных байтов.

EndAccept(IAsyncResult)

Асинхронно принимает входящие попытки подключения и создает новый объект Socket для связи с удаленным узлом.

EndConnect(IAsyncResult)

Завершает ожидающий асинхронный запрос на подключение.

EndDisconnect(IAsyncResult)

Завершает ожидающий асинхронный запрос на разъединение.

EndReceive(IAsyncResult)

Завершает отложенное асинхронное чтение.

EndReceive(IAsyncResult, SocketError)

Завершает отложенное асинхронное чтение.

EndReceiveFrom(IAsyncResult, EndPoint)

Завершает отложенное асинхронное чтение с определенной конечной точки.

EndReceiveMessageFrom(IAsyncResult, SocketFlags, EndPoint, IPPacketInformation)

Завершает отложенное асинхронное чтение с определенной конечной точки. Этот метод также показывает больше информации о пакете, чем метод EndReceiveFrom(IAsyncResult, EndPoint).

EndSend(IAsyncResult)

Завершает отложенную операцию асинхронной передачи.

EndSend(IAsyncResult, SocketError)

Завершает отложенную операцию асинхронной передачи.

EndSendFile(IAsyncResult)

Завершает отложенную операцию асинхронной передачи файла.

EndSendTo(IAsyncResult)

Завершает отложенную операцию асинхронной отправки в определенное местоположение.

Equals(Object)

Определяет, равен ли указанный объект текущему объекту.

(Унаследовано от Object)
Finalize()

Освобождает ресурсы, используемые классом Socket.

GetHashCode()

Возвращает хэш-значение для экземпляра Socket.

GetHashCode()

Служит хэш-функцией по умолчанию.

(Унаследовано от Object)
GetRawSocketOption(Int32, Int32, Span<Byte>)

Возвращает значение параметра сокета, используя связанные с платформой идентификаторы имени и уровня.

GetSocketOption(SocketOptionLevel, SocketOptionName)

Возвращает значение указанного параметра Socket, представленного в виде объекта.

GetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Возвращает указанное значение параметра Socket, представленного в виде байтового массива.

GetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Возвращает значение указанного параметра Socket в массиве.

GetType()

Возвращает объект Type для текущего экземпляра.

(Унаследовано от Object)
IOControl(Int32, Byte[], Byte[])

Задает низкоуровневые операционные режимы для объекта Socket, используя цифровые коды элементов управления.

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

Задает низкоуровневые операционные режимы для объекта Socket, используя перечисление IOControlCode, чтобы указать коды элементов управления.

Listen()

Устанавливает объект Socket в состояние прослушивания.

Listen(Int32)

Устанавливает объект Socket в состояние прослушивания.

MemberwiseClone()

Создает неполную копию текущего объекта Object.

(Унаследовано от Object)
Poll(Int32, SelectMode)

Определяет состояние объекта Socket.

Receive(Byte[])

Возвращает данные из связанного объекта Socket в приемный буфер.

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

Получает указанное число байтов данных из связанного объекта Socket в приемный буфер с указанной позиции смещения, используя заданный объект SocketFlags.

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

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(Byte[], Int32, SocketFlags)

Получает указанное число байтов данных из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(Byte[], SocketFlags)

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(IList<ArraySegment<Byte>>)

Получает данные из связанного объекта Socket в список приемных буферов.

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

Получает данные из связанного объекта Socket в список приемных буферов, используя заданный объект SocketFlags.

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

Получает данные из связанного объекта Socket в список приемных буферов, используя заданный объект SocketFlags.

Receive(Span<Byte>)

Возвращает данные из связанного объекта Socket в приемный буфер.

Receive(Span<Byte>, SocketFlags)

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

Receive(Span<Byte>, SocketFlags, SocketError)

Получает данные из связанного объекта Socket в приемный буфер, используя заданный объект SocketFlags.

ReceiveAsync(ArraySegment<Byte>, SocketFlags)

Получает данные из подключенного сокета.

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

Получает данные из подключенного сокета.

ReceiveAsync(Memory<Byte>, SocketFlags, CancellationToken)

Получает данные из подключенного сокета.

ReceiveAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного запроса, чтобы получить данные из подключенного объекта Socket.

ReceiveFrom(Byte[], EndPoint)

Принимает датаграмму в буфер данных и сохраняет конечную точку.

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

Получает указанное число байтов данных в заданном расположении буфера данных с использованием определенного параметра SocketFlags и сохраняет конечную точку.

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

Получает указанное число байтов во входной буфер, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFrom(Byte[], SocketFlags, EndPoint)

Принимает датаграмму в буфер данных, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFrom(Span<Byte>, EndPoint)

Принимает датаграмму в буфер данных и сохраняет конечную точку.

ReceiveFrom(Span<Byte>, SocketFlags, EndPoint)

Принимает датаграмму в буфер данных, используя заданный объект SocketFlags, и сохраняет конечную точку.

ReceiveFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Получает данные и возвращает конечную точку отправляющего узла.

ReceiveFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Получает данные и возвращает конечную точку отправляющего узла.

ReceiveFromAsync(SocketAsyncEventArgs)

Начинает выполнение асинхронного приема данных с указанного сетевого устройства.

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

Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного SocketFlags и сохраняет конечную точку и сведения о пакете.

ReceiveMessageFrom(Span<Byte>, SocketFlags, EndPoint, IPPacketInformation)

Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного socketFlags и сохраняет конечную точку и сведения о пакете.

ReceiveMessageFromAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Получает данные и возвращает дополнительные сведения об отправителе сообщения.

ReceiveMessageFromAsync(Memory<Byte>, SocketFlags, EndPoint, CancellationToken)

Получает данные и возвращает дополнительные сведения об отправителе сообщения.

ReceiveMessageFromAsync(SocketAsyncEventArgs)

Начинает асинхронный прием заданного числа байтов данных в указанное место буфера данных, используя заданный объект SocketFlags, а также сохраняет конечную точку и информацию пакета.

Select(IList, IList, IList, Int32)

Определяет состояние одного или нескольких сокетов.

Send(Byte[])

Передает данные в подключенный объект Socket.

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

Отправляет указанное количество байтов данных в подключенный Socket, начиная с заданного смещения и используя заданный параметр SocketFlags.

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

Отправляет указанное количество байтов данных в подключенный Socket, начиная с заданного смещения и используя заданный параметр SocketFlags.

Send(Byte[], Int32, SocketFlags)

Посылает указанное число байтов данных на подключенный объект Socket, используя заданный объект SocketFlags.

Send(Byte[], SocketFlags)

Передает данные в подключенный объект Socket, используя заданный объект SocketFlags.

Send(IList<ArraySegment<Byte>>)

Отправляет набор буферов в список на подключенный объект Socket.

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

Отправляет набор буферов в список на подключенный объект Socket, используя указанный объект SocketFlags.

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

Отправляет набор буферов в список на подключенный объект Socket, используя указанный объект SocketFlags.

Send(ReadOnlySpan<Byte>)

Передает данные в подключенный объект Socket.

Send(ReadOnlySpan<Byte>, SocketFlags)

Передает данные в подключенный объект Socket, используя заданный объект SocketFlags.

Send(ReadOnlySpan<Byte>, SocketFlags, SocketError)

Передает данные в подключенный объект Socket, используя заданный объект SocketFlags.

SendAsync(ArraySegment<Byte>, SocketFlags)

Отправляет данные на подключенный сокет.

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

Отправляет данные на подключенный сокет.

SendAsync(ReadOnlyMemory<Byte>, SocketFlags, CancellationToken)

Отправляет данные на подключенный сокет.

SendAsync(SocketAsyncEventArgs)

Выполняет асинхронную передачу данных на подключенный объект Socket.

SendFile(String)

Отправляет файл fileName на подключенный объект Socket, используя флаг передачи UseDefaultWorkerThread.

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

Отправляет файл fileName и буферы данных в подключенный объект Socket, используя указанное значение TransmitFileOptions.

SendFile(String, ReadOnlySpan<Byte>, ReadOnlySpan<Byte>, TransmitFileOptions)

Отправляет файл fileName и буферы данных в подключенный объект Socket, используя указанное значение TransmitFileOptions.

SendFileAsync(String, CancellationToken)

Отправляет файл fileName в подключенный Socket объект.

SendFileAsync(String, ReadOnlyMemory<Byte>, ReadOnlyMemory<Byte>, TransmitFileOptions, CancellationToken)

Отправляет файл fileName и буферы данных в подключенный объект Socket, используя указанное значение TransmitFileOptions.

SendPacketsAsync(SocketAsyncEventArgs)

Выполняет асинхронную передачу набора файла или буферов данных в памяти на подключенный объект Socket.

SendTo(Byte[], EndPoint)

Посылает данные на указанную конечную точку.

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

Посылает указанное число байтов данных на указанную конечную точку, начиная с заданной позиции буфера и используя указанный объект SocketFlags.

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

Посылает указанное число байтов данных на указанную конечную точку, используя заданный объект SocketFlags.

SendTo(Byte[], SocketFlags, EndPoint)

Передает данные на указанную конечную точку, используя заданный объект SocketFlags.

SendTo(ReadOnlySpan<Byte>, EndPoint)

Посылает данные на указанную конечную точку.

SendTo(ReadOnlySpan<Byte>, SocketFlags, EndPoint)

Передает данные на указанную конечную точку, используя заданный объект SocketFlags.

SendToAsync(ArraySegment<Byte>, SocketFlags, EndPoint)

Отправляет данные на указанный удаленный узел.

SendToAsync(ReadOnlyMemory<Byte>, SocketFlags, EndPoint, CancellationToken)

Отправляет данные на указанный удаленный узел.

SendToAsync(SocketAsyncEventArgs)

Асинхронно передает данные на конкретный удаленный узел.

SetIPProtectionLevel(IPProtectionLevel)

Задает уровень защиты IP-адресов для сокета.

SetRawSocketOption(Int32, Int32, ReadOnlySpan<Byte>)

Задает значение параметра сокета, используя связанные с платформой идентификаторы имени и уровня.

SetSocketOption(SocketOptionLevel, SocketOptionName, Boolean)

Устанавливает для заданного параметра Socket указанное значение Boolean.

SetSocketOption(SocketOptionLevel, SocketOptionName, Byte[])

Устанавливает для указанного параметра Socket заданное значение, представленное в виде байтового массива.

SetSocketOption(SocketOptionLevel, SocketOptionName, Int32)

Устанавливает заданное целое значение для указанного параметра Socket.

SetSocketOption(SocketOptionLevel, SocketOptionName, Object)

Устанавливает для указанного параметра Socket заданное значение, представленное в виде объекта.

Shutdown(SocketShutdown)

Блокирует передачу и получение данных для объекта Socket.

ToString()

Возвращает строку, представляющую текущий объект.

(Унаследовано от Object)

Явные реализации интерфейса

IDisposable.Dispose()

Этот API поддерживает инфраструктуру продукта и не предназначен для использования непосредственно из программного кода.

Освобождает все ресурсы, занятые модулем Socket.

Методы расширения

AcceptAsync(Socket)

Выполняет асинхронную операцию для приема попыток входящего подключения через сокет.

AcceptAsync(Socket, Socket)

Выполняет асинхронную операцию для приема попыток входящего подключения через сокет.

ConnectAsync(Socket, EndPoint)

Устанавливает подключение к удаленному узлу.

ConnectAsync(Socket, EndPoint, CancellationToken)

Устанавливает подключение к удаленному узлу.

ConnectAsync(Socket, IPAddress, Int32)

Устанавливает подключение к удаленному узлу. Узел задается IP-адресом и номером порта.

ConnectAsync(Socket, IPAddress, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу, заданному IP-адресом и номером порта.

ConnectAsync(Socket, IPAddress[], Int32)

Устанавливает подключение к удаленному узлу. Узел задается массивом IP-адресов и номером порта.

ConnectAsync(Socket, IPAddress[], Int32, CancellationToken)

Устанавливает подключение к удаленному узлу, заданному массивом IP-адресов и номером порта.

ConnectAsync(Socket, String, Int32)

Устанавливает подключение к удаленному узлу. Узел задается именем узла и номером порта.

ConnectAsync(Socket, String, Int32, CancellationToken)

Устанавливает подключение к удаленному узлу, заданному именем узла и номером порта.

ReceiveAsync(Socket, ArraySegment<Byte>, SocketFlags)

Получает данные из подключенного сокета.

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

Получает данные из подключенного сокета.

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

Получает данные из подключенного сокета.

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

Получает данные из указанного сетевого устройства.

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

Получает указанное число байтов данных в указанное расположение буфера данных с помощью заданного SocketFlags и сохраняет конечную точку и сведения о пакете.

SendAsync(Socket, ArraySegment<Byte>, SocketFlags)

Отправляет данные в подключенный сокет.

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

Отправляет данные в подключенный сокет.

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

Отправляет данные в подключенный сокет.

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

Асинхронно передает данные на конкретный удаленный узел.

Применяется к

Потокобезопасность

Экземпляры этого класса являются потокобезопасными.

См. также раздел