Поделиться через


Socket.Listen Метод

Определение

Перегрузки

Listen()

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

Listen(Int32)

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

Listen()

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

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

public:
 void Listen();
public void Listen ();
member this.Listen : unit -> unit
Public Sub Listen ()

Комментарии

Максимальная длина очереди ожидающих подключений определяется автоматически.

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

Listen(Int32)

Исходный код:
Socket.cs
Исходный код:
Socket.cs
Исходный код:
Socket.cs

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

public:
 void Listen(int backlog);
public void Listen (int backlog);
member this.Listen : int -> unit
Public Sub Listen (backlog As Integer)

Параметры

backlog
Int32

Максимальная длина очереди ожидающих подключений.

Исключения

Произошла ошибка при попытке доступа к сокету.

Socket был закрыт.

Примеры

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

// create the socket
Socket^ listenSocket = gcnew Socket( AddressFamily::InterNetwork,
   SocketType::Stream,
   ProtocolType::Tcp );

// bind the listening socket to the port
IPAddress^ hostIP = ( Dns::Resolve( IPAddress::Any->ToString() ) )->AddressList[ 0 ];
IPEndPoint^ ep = gcnew IPEndPoint( hostIP,port );
listenSocket->Bind( ep );

// start listening
listenSocket->Listen( backlog );
    // create the socket
    Socket listenSocket = new Socket(AddressFamily.InterNetwork,
                                     SocketType.Stream,
                                     ProtocolType.Tcp);

    // bind the listening socket to the port
IPAddress hostIP = (Dns.Resolve(IPAddress.Any.ToString())).AddressList[0];
    IPEndPoint ep = new IPEndPoint(hostIP, port);
    listenSocket.Bind(ep);

    // start listening
    listenSocket.Listen(backlog);
   ' create the socket
   Dim listenSocket As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
   
   ' bind the listening socket to the port
   Dim hostIP As IPAddress = Dns.Resolve(IPAddress.Any.ToString()).AddressList(0)
   Dim ep As New IPEndPoint(hostIP, port)
   listenSocket.Bind(ep)
   
   ' start listening
   listenSocket.Listen(backlog)
End Sub

Комментарии

Listen приводит к тому, что ориентированный Socket на подключение прослушивает входящие попытки подключения. Параметр backlog указывает количество входящих подключений, которые могут быть поставлены в очередь для принятия. Чтобы определить максимальное количество подключений, которые можно указать, получите MaxConnections значение . Listen не блокируется.

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

Примечание

Необходимо вызвать метод перед вызовом BindListenили Listen вызовет SocketExceptionисключение .

Примечание

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

Примечание

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

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

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