Socket.Accept Method

Definition

Создает новый объект Socket для заново созданного подключения.Creates a new Socket for a newly created connection.

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

Returns

Socket

Объект Socket для заново созданного подключения.A Socket for a newly created connection.

Exceptions

Произошла ошибка при попытке доступа к сокету.An error occurred when attempting to access the socket.

Socket был закрыт.The Socket has been closed.

Принимающий сокет не производит прослушивание подключений.The accepting socket is not listening for connections. Необходимо вызвать Bind(EndPoint) и Listen(Int32) до вызова объекта Accept().You must call Bind(EndPoint) and Listen(Int32) before calling Accept().

Examples

В следующем примере кода принимается простое Socket соединение.The following code example accepts a simple Socket connection.

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

Remarks

Accept синхронно извлекает из очереди запросов на подключение прослушивающего сокета первый ожидающий запрос на подключение, а затем создает и возвращает новый Socket.Accept synchronously extracts the first pending connection request from the connection request queue of the listening socket, and then creates and returns a new Socket. Этот возвращенный Socket нельзя использовать для принятия дополнительных соединений из очереди подключения.You cannot use this returned Socket to accept any additional connections from the connection queue. Однако можно вызвать метод RemoteEndPoint возвращенной Socket, чтобы узнать сетевой адрес и номер порта удаленного узла.However, you can call the RemoteEndPoint method of the returned Socket to identify the remote host's network address and port number.

В режиме блокировки Accept блокируется до тех пор, пока не помещается в очередь входящих подключений.In blocking mode, Accept blocks until an incoming connection attempt is queued. Когда подключение будет принято, исходное Socket продолжит постановку в очередь входящих запросов на подключение, пока вы не закроете его.Once a connection is accepted, the original Socket continues queuing incoming connection requests until you close it.

При вызове этого метода с помощью неблокирующего Socketи отсутствии запросов на подключение Accept выдает SocketException.If you call this method using a non-blocking Socket, and no connection requests are queued, Accept throws a SocketException. Если вы получаете SocketException, используйте свойство SocketException.ErrorCode для получения конкретного кода ошибки.If you receive a SocketException, use the SocketException.ErrorCode property to obtain the specific error code. После получения этого кода обратитесь к документации по коду ошибки API Windows Sockets версии 2 для получения подробного описания ошибки.After you have obtained this code, refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.

Note

Перед вызовом метода Accept необходимо сначала вызвать метод Listen для прослушивания и постановки в очередь входящих запросов на подключение.Before calling the Accept method, you must first call the Listen method to listen for and queue incoming connection requests.

Note

Данный член генерирует сведения трассировки, если в приложении включена трассировка сети.This member outputs trace information when you enable network tracing in your application. Дополнительные сведения см. в разделе Сетевая трассировка в .NET Framework.For more information, see Network Tracing in the .NET Framework.

Applies to

See also