Клиент идентифицирует тип связи (в данном случае TCP). Локальная система создает соответствующую структуру данных TCB для соединения и возвращает локальный дескриптор socket. | |
Клиент указывает IP-адрес и порт сервера. TCP попытается установить соединение с сервером. |
Если клиент желает явно определить применяемый далее локальный порт, он должен вызвать
Если клиент запросил порт не через
21.5.4 Другие запросы
Оставшиеся запросы используются клиентом и сервером аналогичным способом. Данные могут быть переданы и получены через обычные запросы
Запись буфера данных в socket. Как альтернативу можно применить | |
Пересылка в socket последовательности буферов. Как альтернативу можно применить | |
Получение буфера данных из socket либо из | |
Получение последовательности буферов из socket либо из |
Иногда программе нужна информация, хранящаяся в TCB:
Чтение выбранной информации из TCB. Иногда система обеспечивает необязательные системные запросы ввода/вывода, которые позволяют читать различные части TCB. |
Проверка входных параметров запросов на открытие, отправку или получение показывает, что этих параметров очень мало. Причина в том, что обычно для большинства параметров TCB используются значения по умолчанию, содержащие важную информацию об окружении, например о размере приемного буфера, разрешении регистрации событий либо об использовании блокированной или неблокированной обработки в запросах, подобных
Устанавливает значения нескольких параметров TCB, например размеры приемного и выходного буферов, пересылку срочных данных в общем порядке оправки информации либо блокировку закрытия соединения до благополучной отправки всех данных. | |
Устанавливает ввод/вывод в socket в режим блокирования | |
или | или снимает блокирование. |
На рис. 21.2 демонстрируется последовательность вызовов в типичном сеансе TCP. Вызовы
Рис. 21.2. Последовательность программных вызовов в socket TCP
Вызовы
21.6 Серверная программа TCP
Рассмотрим подробно пример серверной программы. Сервер предназначен для непрерывной работы. Он будет выполнять следующие действия:
1. Запрашивать у
2. Вводить локальный адрес сервера socket в структуру данных программы.