Сети ЭВМ и телекоммуникации. Фролов А.И. - 35 стр.

UptoLike

Составители: 

33
создание очередей клиентов (в ОС типа UNIX функция listen);
ожидание приходящего запроса на соединение с сокетом (в ОС типа
UNIX функция accept);
прием и передача данных от клиента (в ОС типа UNIX функции read,
write, send, recv и их модификации);
закрытие соединения с клиентом (в ОС типа UNIX функция close).
Получив входящий запрос на соединение, сервер должен решать как бы
две задачи одновременно: обслуживать уже установленное с клиентом соеди-
нение в соответствии с прикладным протоколом (принимать и отдавать данные
клиенту) и ожидать поступления новых запросов на соединение от других кли-
ентов. Обычно в развитых ОС (к ним относятся все современные ОС) эта про-
блема решается за счет возможностей параллельного выполнения нескольких
процессов. Сервер может породить новый процесс (или новую цепочку выпол-
нения thread), который и должен будет заняться обслуживанием уже установ-
ленного соединения, а основной процесс сервера может закрыть текущее со-
единение и вновь вернуться к ожиданию запросов на соединение от других
клиентов. В ОС типа UNIX создание нового процесса решается с помощью
функции fork, при этом за вновь созданным процессом сохраняются все соеди-
нения, сделанные в основном процессе.
Для протокола TCP активное (на стороне клиента) соединение с сокетом
приводит к выполнению следующих функций:
создание сокета и установление его типа (в ОС типа UNIX функция
socket);
установление соединения с сервером (указывает адрес и номер порта
в ОС типа UNIX функция connect);
прием и передача данных (в ОС типа UNIX функции read, write, send,
recv и их модификации);
закрытие соединения с сервером (в ОС типа UNIX функция close).
Клиент, как правило, не требует для своей работы параллельного выпол-
нения нескольких процессов.
                                        33

     − создание очередей клиентов (в ОС типа UNIX – функция listen);
     − ожидание приходящего запроса на соединение с сокетом (в ОС типа
UNIX – функция accept);
     − прием и передача данных от клиента (в ОС типа UNIX – функции read,
write, send, recv и их модификации);
     − закрытие соединения с клиентом (в ОС типа UNIX – функция close).
     Получив входящий запрос на соединение, сервер должен решать как бы
две задачи одновременно: обслуживать уже установленное с клиентом соеди-
нение в соответствии с прикладным протоколом (принимать и отдавать данные
клиенту) и ожидать поступления новых запросов на соединение от других кли-
ентов. Обычно в развитых ОС (к ним относятся все современные ОС) эта про-
блема решается за счет возможностей параллельного выполнения нескольких
процессов. Сервер может породить новый процесс (или новую цепочку выпол-
нения – thread), который и должен будет заняться обслуживанием уже установ-
ленного соединения, а основной процесс сервера может закрыть текущее со-
единение и вновь вернуться к ожиданию запросов на соединение от других
клиентов. В ОС типа UNIX создание нового процесса решается с помощью
функции fork, при этом за вновь созданным процессом сохраняются все соеди-
нения, сделанные в основном процессе.
     Для протокола TCP активное (на стороне клиента) соединение с сокетом
приводит к выполнению следующих функций:
     − создание сокета и установление его типа (в ОС типа UNIX функция
socket);
     − установление соединения с сервером (указывает адрес и номер порта –
в ОС типа UNIX – функция connect);
     − прием и передача данных (в ОС типа UNIX – функции read, write, send,
recv и их модификации);
     − закрытие соединения с сервером (в ОС типа UNIX – функция close).
     Клиент, как правило, не требует для своей работы параллельного выпол-
нения нескольких процессов.