Socket.Accept Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Создает новый объект Socket для заново созданного подключения.
public:
System::Net::Sockets::Socket ^ Accept();
public System.Net.Sockets.Socket Accept ();
member this.Accept : unit -> System.Net.Sockets.Socket
Public Function Accept () As Socket
Возвращаемое значение
Объект Socket для заново созданного подключения.
Исключения
Произошла ошибка при попытке доступа к сокету.
Socket был закрыт.
Принимающий сокет не производит прослушивание подключений. Необходимо вызвать Bind(EndPoint) и Listen(Int32) до вызова объекта Accept().
Примеры
В следующем примере кода принимается простое Socket подключение.
protected:
void AcceptMethod( Socket^ listeningSocket )
{
Socket^ mySocket = listeningSocket->Accept();
}
protected void AcceptMethod(Socket listeningSocket)
{
Socket mySocket = listeningSocket.Accept();
}
Protected Sub AcceptMethod(listeningSocket As Socket)
Dim mySocket As Socket = listeningSocket.Accept()
End Sub
Комментарии
Accept синхронно извлекает первый ожидающий запрос на подключение из очереди запросов на подключение прослушиваемого сокета, а затем создает и возвращает новый Socket. Этот возвращенный Socket параметр нельзя использовать для приема дополнительных подключений из очереди подключений. Однако можно вызвать RemoteEndPoint метод возвращаемого Socket объекта , чтобы определить сетевой адрес и номер порта удаленного узла.
В режиме блокировки блокируется, Accept пока входящая попытка подключения не будет поставлена в очередь. После принятия подключения исходный Socket объект продолжает постановку в очередь входящих запросов на подключение, пока вы не закроете его.
Если вы вызываете этот метод с помощью неблокирующего Socketобъекта и запросы на подключение не помещаются в очередь, Accept вызывает исключение SocketException. Если вы получаете SocketException, используйте SocketException.ErrorCode свойство , чтобы получить конкретный код ошибки. Получив этот код, ознакомьтесь с документацией по коду ошибки API сокетов Windows версии 2 , чтобы получить подробное описание ошибки.
Примечание
Перед вызовом Accept метода необходимо сначала вызвать метод для прослушивания и постановки Listen в очередь входящих запросов на подключение.
Примечание
Данный член генерирует сведения трассировки, если в приложении включена трассировка сети. Дополнительные сведения см. в статье Трассировка сети в платформа .NET Framework.