Socket.BeginConnect Метод

Определение

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

Перегрузки

BeginConnect(EndPoint, AsyncCallback, Object)

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

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

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

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

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

BeginConnect(String, Int32, AsyncCallback, Object)

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

BeginConnect(EndPoint, AsyncCallback, Object)

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

public:
 IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, AsyncCallback ^ callback, System::Object ^ state);
public:
 IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ end_point, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.EndPoint remoteEP, AsyncCallback? callback, object? state);
public IAsyncResult BeginConnect (System.Net.EndPoint remoteEP, AsyncCallback callback, object state);
public IAsyncResult BeginConnect (System.Net.EndPoint end_point, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginConnect (end_point As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

remoteEPend_point
EndPoint

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

callback
AsyncCallback

Делегат AsyncCallback.

state
Object

Объект, содержащий сведения о состоянии для этого запроса.

Возвращаемое значение

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное подключение.

Исключения

remoteEP имеет значение null.

только платформа .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.

Socket был закрыт.

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

Сокет Socket был переведен в состояние прослушивания путем вызова Listen(Int32), либо асинхронная операция уже выполняется.

Примеры

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

IPHostEntry^ lipa = Dns::Resolve( "host.contoso.com" );
IPEndPoint^ lep = gcnew IPEndPoint( lipa->AddressList[ 0 ], 11000 );

Socket^ s = gcnew Socket( lep->Address->AddressFamily,
   SocketType::Stream,
   ProtocolType::Tcp );
try
{
   while ( true )
   {
      allDone->Reset();

      Console::WriteLine( "Establishing Connection" );
      s->BeginConnect( lep, gcnew AsyncCallback(
         &Async_Send_Receive::Connect_Callback ), s );

      allDone->WaitOne();
   }
}
catch ( Exception^ e ) 
{
   Console::WriteLine( e );
}
IPHostEntry lipa = Dns.Resolve("host.contoso.com");
IPEndPoint lep = new IPEndPoint(lipa.AddressList[0], 11000);

   Socket s = new Socket(lep.Address.AddressFamily,
                               SocketType.Stream,
                                     ProtocolType.Tcp);
   try{

             while(true){
             allDone.Reset();

             Console.WriteLine("Establishing Connection");
             s.BeginConnect(lep, new AsyncCallback(Async_Send_Receive.Connect_Callback), s);

             allDone.WaitOne();
        }
   }
   catch (Exception e){
        Console.WriteLine(e.ToString());
   }
    Dim lipa As IPHostEntry = Dns.Resolve("host.contoso.com")
    Dim lep As New IPEndPoint(lipa.AddressList(0), 11000)
    
    Dim s As New Socket(lep.Address.AddressFamily, SocketType.Stream, ProtocolType.Tcp)
    Try
       
       While True
          allDone.Reset()
          
          Console.WriteLine("Establishing Connection")

          s.BeginConnect(lep, New AsyncCallback(AddressOf Async_Send_Receive.Connect_Callback), s)
          
          allDone.WaitOne()
       End While
    Catch e As Exception
       Console.WriteLine(e.ToString())
    End Try
 End Sub

Комментарии

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

Можно создать метод обратного вызова, который реализует AsyncCallback делегат и передает его имя методу BeginConnect . Как минимум, необходимо передать Socket BeginConnect его через state параметр. Если обратный вызов требует дополнительных сведений, можно создать небольшой класс для хранения Socketи другие необходимые сведения. Передайте экземпляр этого класса методу BeginConnect через state параметр.

Метод обратного EndConnect вызова должен вызывать этот метод. При вызове BeginConnectприложения система будет использовать отдельный поток для выполнения указанного метода обратного вызова и будет блокироваться EndConnect до тех пор, пока Socket подключение не будет выполнено успешно или не вызовет исключение. Если вы хотите, чтобы исходный поток блокировать после вызова BeginConnect метода, используйте WaitOne. Вызовите метод ManualResetEvent Set в методе обратного вызова, если вы хотите, чтобы исходный поток продолжал выполняться. Дополнительные сведения о написании методов обратного вызова см. в разделе "Маршалинг делегата в качестве метода обратного вызова".

Если вы используете протокол без подключения, например UDP, вам не придется вызывать BeginConnect перед отправкой и получением данных. Вы можете использовать BeginSendTo удаленный узел и BeginReceiveFrom взаимодействовать с ним. При вызове BeginConnectвсе датаграммы, поступающие с адреса, отличного от указанного по умолчанию, будут удалены. Если вы хотите установить удаленный узел по умолчанию на адрес широковещательной трансляции, необходимо сначала вызвать SetSocketOption и задать значение true"Широковещательная передача". Если вы не можете, BeginConnect вызовет SocketException.

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

Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. При вызове Close метода во время выполнения асинхронной операции вызывается обратный вызов, предоставленный методу BeginConnect . Последующий вызов EndConnect метода вызовет ObjectDisposedException исключение, указывающее, что операция отменена.

Примечание

При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API Windows Sockets версии 2, чтобы получить подробное описание ошибки.

Примечание

Если этот сокет ранее был отключен, необходимо вызвать в потоке, BeginConnect который не выйдет до завершения операции. Это ограничение базового поставщика.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в разделе "Трассировка сети" в платформа .NET Framework.

Примечание

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

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

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

BeginConnect(IPAddress, Int32, AsyncCallback, Object)

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

public:
 IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public:
 IAsyncResult ^ BeginConnect(System::Net::IPAddress ^ address, int port, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
member this.BeginConnect : System.Net.IPAddress * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginConnect (address As IPAddress, port As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

address
IPAddress

Адрес IPAddress удаленного узла.

port
Int32

Номер порта удаленного узла.

requestCallbackcallback
AsyncCallback

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

state
Object

Пользовательский объект, содержащий информацию об операции подключения. Этот объект передается делегату requestCallback по завершении операции.

Возвращаемое значение

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное подключение.

Исключения

address имеет значение null.

только платформа .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.

Socket был закрыт.

Объект Socket не входит в состав семейства сокетов.

Номер порта недействителен.

Длина параметра address равна нулю.

Сокет Socket был переведен в состояние прослушивания путем вызова Listen(Int32), либо асинхронная операция уже выполняется.

Примеры

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

static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
static void ConnectCallback1( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = dynamic_cast<Socket^>(ar->AsyncState);
   s->EndConnect( ar );
}
public static ManualResetEvent allDone =
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous
// connect call. the socket is passed via the objectState
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}
// Asynchronous connect using the host name, resolved via 
// IPAddress
static void BeginConnect1( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   allDone->Reset();
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->BeginConnect( IPs[ 0 ], port, gcnew AsyncCallback( ConnectCallback1 ), s );
   
   // wait here until the connect finishes.  
   // The callback sets allDone.
   allDone->WaitOne();
   Console::WriteLine( "Connection established" );
}
// Asynchronous connect using the host name, resolved via
// IPAddress
public static void BeginConnect1(string host, int port)
{

    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.BeginConnect(IPs[0], port,
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.
    // The callback sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");
}

Комментарии

Асинхронная BeginConnect операция должна быть завершена путем вызова EndConnect метода. Как правило, метод вызывается делегатом requestCallback .

Этот метод не блокируется до завершения операции. Чтобы заблокировать выполнение операции, используйте одну из Connect перегрузок метода или EndConnect.

Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. При вызове Close метода во время выполнения асинхронной операции вызывается обратный вызов, предоставленный методу BeginConnect . Последующий вызов EndConnect метода вызовет ObjectDisposedException исключение, указывающее, что операция отменена.

Подробные сведения об использовании модели асинхронного программирования см. в разделе "Вызов синхронных методов асинхронно"

Примечание

При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API Windows Sockets версии 2, чтобы получить подробное описание ошибки.

Примечание

Если этот сокет ранее был отключен, необходимо вызвать в потоке, BeginConnect который не выйдет до завершения операции. Это ограничение базового поставщика. Кроме того, используемый EndPoint параметр должен отличаться.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в разделе "Трассировка сети" в платформа .NET Framework.

Примечание

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

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

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

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

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

public:
 IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public:
 IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);
public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback callback, object state);
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
member this.BeginConnect : System.Net.IPAddress[] * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginConnect (addresses As IPAddress(), port As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

addresses
IPAddress[]

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

port
Int32

Номер порта удаленного узла.

requestCallbackcallback
AsyncCallback

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

state
Object

Пользовательский объект, содержащий информацию об операции подключения. Этот объект передается делегату requestCallback по завершении операции.

Возвращаемое значение

IAsyncResult

IAsyncResult, который ссылается на асинхронное подключение.

Исключения

addresses имеет значение null.

только платформа .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.

Socket был закрыт.

Этот метод применим для сокетов, которые используют объект InterNetwork или InterNetworkV6.

Недействительный номер порта.

Длина параметра address равна нулю.

Сокет Socket был переведен в состояние прослушивания путем вызова Listen(Int32), либо асинхронная операция уже выполняется.

Примеры

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

static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
static void ConnectCallback1( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = dynamic_cast<Socket^>(ar->AsyncState);
   s->EndConnect( ar );
}
public static ManualResetEvent allDone =
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous
// connect call. the socket is passed via the objectState
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}
// Asynchronous connect, using DNS.ResolveToAddresses
static void BeginConnect2( String^ host, int port )
{
   array<IPAddress^>^IPs = Dns::GetHostAddresses( host );
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   allDone->Reset();
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->BeginConnect( IPs, port, gcnew AsyncCallback( ConnectCallback1 ), s );
   
   // wait here until the connect finishes.  The callback 
   // sets allDone.
   allDone->WaitOne();
   Console::WriteLine( "Connection established" );
}

// Asynchronous connect, using DNS.GetHostAddresses
public static void BeginConnect2(string host, int port)
{
    IPAddress[] IPs = Dns.GetHostAddresses(host);

    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.BeginConnect(IPs, port,
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.  The callback
    // sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");
}

Комментарии

Асинхронная BeginConnect операция должна быть завершена путем вызова EndConnect метода. Как правило, метод вызывается делегатом requestCallback .

Этот метод не блокируется до завершения операции. Чтобы заблокировать выполнение операции, используйте одну из Connect перегрузок метода.

Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. При вызове Close метода во время выполнения асинхронной операции вызывается обратный вызов, предоставленный методу BeginConnect . Последующий вызов EndConnect метода вызовет ObjectDisposedException исключение, указывающее, что операция отменена.

Подробные сведения об использовании модели асинхронного программирования см. в разделе "Вызов синхронных методов асинхронно".

Примечание

При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API Windows Sockets версии 2, чтобы получить подробное описание ошибки.

Примечание

Если этот сокет ранее был отключен, необходимо вызвать в потоке, BeginConnect который не выйдет до завершения операции. Это ограничение базового поставщика. Кроме того, используемый EndPoint параметр должен отличаться.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в разделе "Трассировка сети" в платформа .NET Framework.

Примечание

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

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

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

BeginConnect(String, Int32, AsyncCallback, Object)

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

public:
 IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, System::Object ^ state);
public:
 IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ callback, System::Object ^ state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback? requestCallback, object? state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback requestCallback, object state);
public IAsyncResult BeginConnect (string host, int port, AsyncCallback callback, object state);
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
member this.BeginConnect : string * int * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (host As String, port As Integer, requestCallback As AsyncCallback, state As Object) As IAsyncResult
Public Function BeginConnect (host As String, port As Integer, callback As AsyncCallback, state As Object) As IAsyncResult

Параметры

host
String

Имя удаленного узла.

port
Int32

Номер порта удаленного узла.

requestCallbackcallback
AsyncCallback

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

state
Object

Пользовательский объект, содержащий информацию об операции подключения. Этот объект передается делегату requestCallback по завершении операции.

Возвращаемое значение

IAsyncResult

Объект IAsyncResult, который ссылается на асинхронное подключение.

Исключения

host имеет значение null.

Socket был закрыт.

Этот метод допустим для сокетов в семействах InterNetwork или InterNetworkV6 .

Недействительный номер порта.

Сокет Socket был переведен в состояние прослушивания путем вызова Listen(Int32), либо асинхронная операция уже выполняется.

Примеры

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

static ManualResetEvent^ allDone = gcnew ManualResetEvent( false );

// handles the completion of the prior asynchronous 
// connect call. the socket is passed via the objectState 
// paramater of BeginConnect().
static void ConnectCallback1( IAsyncResult^ ar )
{
   allDone->Set();
   Socket^ s = dynamic_cast<Socket^>(ar->AsyncState);
   s->EndConnect( ar );
}
public static ManualResetEvent allDone =
    new ManualResetEvent(false);

// handles the completion of the prior asynchronous
// connect call. the socket is passed via the objectState
// paramater of BeginConnect().
public static void ConnectCallback1(IAsyncResult ar)
{
    allDone.Set();
    Socket s = (Socket) ar.AsyncState;
    s.EndConnect(ar);
}
// Asynchronous connect using host name (resolved by the 
// BeginConnect call.)
static void BeginConnect3( String^ host, int port )
{
   Socket^ s = gcnew Socket( AddressFamily::InterNetwork,SocketType::Stream,ProtocolType::Tcp );
   allDone->Reset();
   Console::WriteLine( "Establishing Connection to {0}", host );
   s->BeginConnect( host, port, gcnew AsyncCallback( ConnectCallback1 ), s );
   
   // wait here until the connect finishes.  The callback 
   // sets allDone.
   allDone->WaitOne();
   Console::WriteLine( "Connection established" );
}
// Asynchronous connect using host name (resolved by the
// BeginConnect call.)
public static void BeginConnect3(string host, int port)
{
    Socket s = new Socket(AddressFamily.InterNetwork,
        SocketType.Stream,
        ProtocolType.Tcp);

    allDone.Reset();

    Console.WriteLine("Establishing Connection to {0}",
        host);
    s.BeginConnect(host, port,
        new AsyncCallback(ConnectCallback1), s);

    // wait here until the connect finishes.  The callback
    // sets allDone.
    allDone.WaitOne();

    Console.WriteLine("Connection established");
}

Комментарии

Асинхронная BeginConnect операция должна быть завершена путем вызова EndConnect метода. Как правило, метод вызывается делегатом requestCallback .

Этот метод не блокируется до завершения операции. Чтобы заблокировать выполнение операции, используйте одну из Connect перегрузок метода.

Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. При вызове Close метода во время выполнения асинхронной операции вызывается обратный вызов, предоставленный методу BeginConnect . Последующий вызов EndConnect метода вызовет ObjectDisposedException исключение, указывающее, что операция отменена.

Подробные сведения об использовании модели асинхронного программирования см. в разделе "Вызов синхронных методов асинхронно"

Примечание

При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API Windows Sockets версии 2, чтобы получить подробное описание ошибки.

Примечание

Если этот сокет ранее был отключен, необходимо вызвать в потоке, BeginConnect который не выйдет до завершения операции. Это ограничение базового поставщика. Кроме того, используемый EndPoint параметр должен отличаться.

Примечание

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в разделе "Трассировка сети" в платформа .NET Framework.

Примечание

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

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

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