ВУЗ:
Составители:
Рубрика:
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). Клиент, как правило, не требует для своей работы параллельного выпол- нения нескольких процессов.
Страницы
- « первая
- ‹ предыдущая
- …
- 33
- 34
- 35
- 36
- 37
- …
- следующая ›
- последняя »