Home

Page 242
Page 242
background image

Сеть на низком уровне 235

5.5. Продолжаем знакомиться с

Когда в первом разделе этой главы я описывал функции WinSock, мною бы-

ли рассмотрены только основные функции: инициализация и соединение.

С обеими функциями мы познакомились на практике и создали быстрый
сканер портов. Теперь нам предстоит расширить свои знания о WinSock и

узнать, какие функции используются для получения и отправки данных.

Хотя в своей книге я буду их часто использовать, знание внутренностей

тевой библиотеки Windows никогда не помешает.

Первая функция, необходимая для большинства сетевых программ, —

listen. Когда серверная программа открыла порт и ожидает соединения со

стороны клиента, то она должна вызвать эту функцию. Функция служит для
начала прослушивания порта на случай подключения к нему со стороны
клиента. Вот так выглядит эта функция в WinSock2:

function

s: TSocket;

backlog: Integer

): Integer; stdcall;

• Первый параметр  — дескриптор гнезда или сокет.

• Второй параметр backlog

 максимально допустимое число запросов,

ожидающих обработки. Если этот параметр равен

 ядро са-

мо установит максимально возможное для него значение.

В большинстве случаев параметр

 зависит от установленного

в системе параметра "максимальное количество подключений". Если вы ис-

пользуете Windows 95/98, то этот параметр регулируется в настройках сети.
Следующая функция называется accept. Она служит для подтверждения
соединения сервером. Эта функция принимает запросы на подключение,
поступающие на вход процесса-сервера:

function accept (

const s: TSocket;

var addr: TSockAddr;

var addrlen: Integer

}: TSocket; stdcall;

 Первый параметр s — это все тот же дескриптор гнезда/сокета.

 addr

 указатель на структуру, в котором ядро возвращает адрес подклю-

чаемого клиента.

 — размер адреса.

После завершения выполнения функции ядро записывает в переменную
addrien длину параметра addr. Функция возвращает новый дескриптор


Copyright © 2020 Файлообменник files.d-lan.dp.ua

Использование любых материалов сайта возможно только с разрешения автора.