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)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронный запрос подключения к удаленному узлу.
public:
IAsyncResult ^ BeginConnect(System::Net::EndPoint ^ remoteEP, 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);
member this.BeginConnect : System.Net.EndPoint * AsyncCallback * obj -> IAsyncResult
Public Function BeginConnect (remoteEP As EndPoint, callback As AsyncCallback, state As Object) As IAsyncResult
Параметры
- callback
- AsyncCallback
Делегат AsyncCallback .
- state
- Object
Объект, содержащий сведения о состоянии для этого запроса.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное подключение.
Исключения
remoteEP равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Он Socket был закрыт.
Вызывающий объект выше в стеке вызовов не имеет разрешения на запрошенную операцию.
Он Socket был помещен в состояние прослушивания путем вызова Listen(Int32)или асинхронной операции уже выполняется.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Протоколы, ориентированные на подключение, могут использовать BeginAccept метод для начала приема входящих попыток подключения. Результирующая операция приема представлена возвращаемым IAsyncResult , даже если она может завершиться синхронно. Перед вызовом BeginAcceptListen метода необходимо вызвать метод для прослушивания и очереди входящих запросов на подключение.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginAccept для получения уведомления о завершении операции принятия. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов может выполняться во время вызова BeginAccept. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginAccept.
Операция BeginAccept должна быть завершена EndAccept путем вызова метода. Как правило, метод вызывается предоставленным AsyncCallback делегатом. EndAccept блокирует вызывающий поток до завершения операции.
Чтобы отменить ожидающий вызов BeginAccept метода, закройте Socket. Close При вызове метода во время асинхронной операции вызывается обратный BeginAccept вызов метода. Последующий вызов EndAccept метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
Чтобы определить сетевой адрес и номер порта удаленного узла, можно использовать RemoteEndPoint свойство возвращаемого Socket объекта.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера
Применяется к
BeginConnect(IPAddress, Int32, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронный запрос подключения к удаленному узлу. Узел задается номером 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? requestCallback, object? state);
public IAsyncResult BeginConnect(System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);
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
Параметры
- port
- Int32
Номер порта удаленного узла.
- requestCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции подключения.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции подключения. Этот объект передается делегату requestCallback после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное подключение.
Исключения
address равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Он Socket был закрыт.
Он Socket не находится в семействе сокетов.
Недопустимый номер порта.
Длина address равно нулю.
Он Socket был помещен в состояние прослушивания путем вызова Listen(Int32)или асинхронной операции уже выполняется.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Если используется протокол, ориентированный на подключение, BeginConnect метод запускает асинхронный запрос для подключения к endpoit, указанному параметром remoteEP . Если вы используете протокол без подключения, BeginConnect установите удаленный узел по умолчанию.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginConnect для получения уведомлений о завершении операции подключения. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов может выполняться во время вызова BeginConnect. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginConnect.
Операция BeginConnect должна быть завершена EndConnect путем вызова метода. Как правило, метод вызывается предоставленным AsyncCallback делегатом. EndConnect блокирует вызывающий поток до завершения операции.
Если вы используете протокол без подключения, например UDP, перед отправкой и получением данных не нужно вызывать BeginConnect . Вы можете использовать BeginSendTo и BeginReceiveFrom взаимодействовать с удаленным узлом. При вызове BeginConnectвсе граммы данных, поступающие из адреса, отличного от указанного по умолчанию, будут удалены. Если вы хотите задать удаленный узел по умолчанию для широковещательного адреса, необходимо сначала вызвать SetSocketOption и задать значение true"Широковещательный". Если вы не можете, BeginConnect вызовет SocketException.
Если вы используете протокол, ориентированный на подключение, и не вызывайте перед вызовом BindBeginConnect, базовый поставщик услуг назначит наиболее подходящий адрес локальной сети и номер порта. Если вы используете протокол без подключения, поставщик услуг не назначит адрес локальной сети и номер порта, пока не вызовете BeginSendReceiveFrom или метод. Если вы хотите изменить удаленный узел по умолчанию, вызовите BeginConnect метод снова с требуемой конечной точкой.
Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. Close При вызове метода во время асинхронной операции вызывается обратный BeginConnect вызов метода. Последующий вызов EndConnect метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Если этот сокет был отключен ранее, необходимо вызвать поток, BeginConnect который не завершится до завершения операции. Это ограничение базового поставщика.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера
Применяется к
BeginConnect(IPAddress[], Int32, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронный запрос подключения к удаленному узлу. Узел указывается массивом IPAddress и номером порта.
public:
IAsyncResult ^ BeginConnect(cli::array <System::Net::IPAddress ^> ^ addresses, int port, AsyncCallback ^ requestCallback, 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);
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
Параметры
- port
- Int32
Номер порта удаленного узла.
- requestCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции подключения.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции подключения. Этот объект передается делегату requestCallback после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронные подключения.
Исключения
addresses равно null.
Только .NET Framework и .NET 5 и более ранних версий: при попытке доступа к сокету произошла ошибка.
Он Socket был закрыт.
Этот метод действителен для сокетов, использующих InterNetwork или InterNetworkV6.
Недопустимый номер порта.
Длина addresses равно нулю.
Он Socket был помещен в состояние прослушивания путем вызова Listen(Int32)или асинхронной операции уже выполняется.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Если используется протокол, ориентированный на подключение, BeginConnect метод запускает асинхронный запрос для подключения к endpoit, указанному параметром remoteEP . Если вы используете протокол без подключения, BeginConnect установите удаленный узел по умолчанию.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginConnect для получения уведомлений о завершении операции подключения. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов может выполняться во время вызова BeginConnect. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginConnect.
Операция BeginConnect должна быть завершена EndConnect путем вызова метода. Как правило, метод вызывается предоставленным AsyncCallback делегатом. EndConnect блокирует вызывающий поток до завершения операции.
Если вы используете протокол без подключения, например UDP, перед отправкой и получением данных не нужно вызывать BeginConnect . Вы можете использовать BeginSendTo и BeginReceiveFrom взаимодействовать с удаленным узлом. При вызове BeginConnectвсе граммы данных, поступающие из адреса, отличного от указанного по умолчанию, будут удалены. Если вы хотите задать удаленный узел по умолчанию для широковещательного адреса, необходимо сначала вызвать SetSocketOption и задать значение true"Широковещательный". Если вы не можете, BeginConnect вызовет SocketException.
Если вы используете протокол, ориентированный на подключение, и не вызывайте перед вызовом BindBeginConnect, базовый поставщик услуг назначит наиболее подходящий адрес локальной сети и номер порта. Если вы используете протокол без подключения, поставщик услуг не назначит адрес локальной сети и номер порта, пока не вызовете BeginSendReceiveFrom или метод. Если вы хотите изменить удаленный узел по умолчанию, вызовите BeginConnect метод снова с требуемой конечной точкой.
Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. Close При вызове метода во время асинхронной операции вызывается обратный BeginConnect вызов метода. Последующий вызов EndConnect метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Если этот сокет был отключен ранее, необходимо вызвать поток, BeginConnect который не завершится до завершения операции. Это ограничение базового поставщика.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера
Применяется к
BeginConnect(String, Int32, AsyncCallback, Object)
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
- Исходный код:
- Socket.cs
Начинает асинхронный запрос подключения к удаленному узлу. Узел указывается именем узла и номером порта.
public:
IAsyncResult ^ BeginConnect(System::String ^ host, int port, AsyncCallback ^ requestCallback, 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);
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
Параметры
- host
- String
Имя удаленного узла.
- port
- Int32
Номер порта удаленного узла.
- requestCallback
- AsyncCallback
Делегат AsyncCallback , ссылающийся на метод для вызова при завершении операции подключения.
- state
- Object
Определяемый пользователем объект, содержащий сведения об операции подключения. Этот объект передается делегату requestCallback после завершения операции.
Возвращаемое значение
Объект, IAsyncResult ссылающийся на асинхронное подключение.
Исключения
host равно null.
Он Socket был закрыт.
Этот метод действителен для сокетов в InterNetwork семействах или InterNetworkV6 сокетах.
Недопустимый номер порта.
Он Socket был помещен в состояние прослушивания путем вызова Listen(Int32)или асинхронной операции уже выполняется.
Комментарии
Это важно
Это API совместимости. Мы не рекомендуем использовать методы APM (Begin* и End*) для новой разработки. Вместо этого используйте Taskэквиваленты на основе.
Если используется протокол, ориентированный на подключение, BeginConnect метод запускает асинхронный запрос для подключения к endpoit, указанному параметром remoteEP . Если вы используете протокол без подключения, BeginConnect установите удаленный узел по умолчанию.
Вы можете передать обратный вызов, который реализуется AsyncCallbackBeginConnect для получения уведомлений о завершении операции подключения. Обратите внимание, что если базовый сетевой стек завершает операцию синхронно, обратный вызов может выполняться во время вызова BeginConnect. В этом случае CompletedSynchronously для возвращаемого IAsyncResult свойства будет задано true значение, указывающее, что метод завершился синхронно.
AsyncState Используйте свойство IAsyncResult объекта состояния, переданного методуBeginConnect.
Операция BeginConnect должна быть завершена EndConnect путем вызова метода. Как правило, метод вызывается предоставленным AsyncCallback делегатом. EndConnect блокирует вызывающий поток до завершения операции.
Если вы используете протокол без подключения, например UDP, перед отправкой и получением данных не нужно вызывать BeginConnect . Вы можете использовать BeginSendTo и BeginReceiveFrom взаимодействовать с удаленным узлом. При вызове BeginConnectвсе граммы данных, поступающие из адреса, отличного от указанного по умолчанию, будут удалены. Если вы хотите задать удаленный узел по умолчанию для широковещательного адреса, необходимо сначала вызвать SetSocketOption и задать значение true"Широковещательный". Если вы не можете, BeginConnect вызовет SocketException.
Если вы используете протокол, ориентированный на подключение, и не вызывайте перед вызовом BindBeginConnect, базовый поставщик услуг назначит наиболее подходящий адрес локальной сети и номер порта. Если вы используете протокол без подключения, поставщик услуг не назначит адрес локальной сети и номер порта, пока не вызовете BeginSendReceiveFrom или метод. Если вы хотите изменить удаленный узел по умолчанию, вызовите BeginConnect метод снова с требуемой конечной точкой.
Чтобы отменить ожидающий вызов BeginConnect метода, закройте Socket. Close При вызове метода во время асинхронной операции вызывается обратный BeginConnect вызов метода. Последующий вызов EndConnect метода вызовет ObjectDisposedException (до .NET 7) или SocketException (в .NET 7+), чтобы указать, что операция отменена.
Замечание
При получении SocketExceptionсвойства используйте SocketException.ErrorCode свойство для получения определенного кода ошибки.
Замечание
Если этот сокет был отключен ранее, необходимо вызвать поток, BeginConnect который не завершится до завершения операции. Это ограничение базового поставщика.
Замечание
Этот элемент выводит сведения о трассировке при включении трассировки сети в приложении. Дополнительные сведения см. в разделе "Трассировка сети" в .NET Framework.
Замечание
Контекст выполнения (контекст безопасности, олицетворенный пользователь и контекст вызова) кэшируется для асинхронных Socket методов. После первого использования определенного контекста (конкретный асинхронный Socket метод, Socket конкретный экземпляр и конкретный обратный вызов), последующие использование этого контекста увидит улучшение производительности.
См. также раздел
- AsyncCallback
- EndConnect(IAsyncResult)
- BeginSendTo(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- BeginReceiveFrom(Byte[], Int32, Int32, SocketFlags, EndPoint, AsyncCallback, Object)
- Маршалинг делегата в качестве метода обратного вызова
- Пример асинхронного сокета клиента
- Пример сокета асинхронного сервера