Шрифт:
Создание очереди сокетов
Для приема запросов на входящие соединения на базе сокетов серверная программа должна создать очередь для хранения ждущих обработки запросов. Формируется она с помощью системного вызова
Система Linux может ограничить количество ждущих обработки соединений, которые могут храниться в очереди. В соответствии с этим максимумом вызов
Функция
Прием запросов на соединение
После создания и именования сокета серверная программа может ждать запросы на выполнение соединения с сокетом с помощью системного вызова
Системный вызов
Предварительно сокету должно быть присвоено имя с помощью системного вызова
Параметр
Если нет запросов на соединение, ждущих в очереди сокета, вызов accept будет заблокирован (так что программа не сможет продолжить выполнение) до тех пор, пока клиент не сделает запрос на соединение. Вы можете изменить это поведение, применив флаг
Функция
Запросы соединений
Клиентские программы подключаются к серверам, устанавливая соединение между неименованным сокетом и сокетом сервера, ждущим подключений. Делают они это с помощью вызова
Сокет, заданный в параметре
Если функция
Таблица 15.3
Значение errno | Описание |
---|---|
EBADF | В параметре socket задан неверный файловый дескриптор |
EALREADY | Для этого сокета соединение уже обрабатывается |
ETIMEDOUT | Допустимое время ожидания соединения превышено |
ECONNREFUSED | Запрос на соединение отвергнут сервером |