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.
Примечание
Параметр невыполненной работы ограничен разными значениями в зависимости от операционной системы. Вы можете указать более высокое значение, но невыполненная работа будет ограничена в зависимости от операционной системы.