Составители:
Рубрика:
socket()
listen()
accept()
close()
read() write()
shutdown()
bind()
socket()
connect()
close()
read() write()
bind()
ñå ð â å ð
êëèåí ò
Рисунок 2. Алгоритмы построения клиента и сервера сходны, но схема подключения к сети
в них разная
Простой эхо-сервер
Прежде чем перейти к рассмотрению системных функций, следует рассказать о том, какого рода сервер мы бу-
дем создавать. В качестве образца был выбран стандартный эхо-сервер. Это основа основ серверного программиро-
вания, подобно приложению "Hello, World" в программировании на языке С.
Большинство соединений можно проверить, послав данные и запросив их назад в неизменном
виде (эхо).
Это хорошая идея для создания простейшего сервера. Аналогичным образом пишутся и отлаживаются даже самые
сложные приложения.
Парадигма построения и отладки
В сетевом программировании приходится очень много заниматься тестированием и отладкой. Это
столь сложная область, что с целью минимизации ошибок следует придерживаться простейших под-
ходов к построению приложений. Парадигма построения и отладки (одна из составных частей мето-
дологии ускоренной разработки программ) предписывает сконцентрироваться на решении конкретной
проблемы. Когда она будет решена, полученный
программный модуль станет строительным блоком
для остальной части приложения
В общем случае в серверной программе требуется в определенной последовательности вызвать
ряд системных функций. На примере эхо-сервера можно наглядно увидеть эту последовательность, не
отвлекаясь на решение других, более специфических задач. Ниже описан общий алгоритм работы эхо-
сервера.
1.Создание сокета с помощью функции socket ().
2.Привязка к порту с помощью функции bind().
3.
Перевод сокета в режим прослушивания с помощью функции listen ().
4.Проверка подключения с помощью функции accept ().
5.Чтение сообщения с помощью функции recv() или read().
6.Возврат сообщения клиенту с помощью функции send() или write ().
7.Если полученное сообщение не является строкой "bye", возврат к п. 5.
8.Разрыв соединения с помощью функции close() или shutdown().
9.Возврат к п. 4.
В приведенном алгоритме четко
видны отличия от протокола UDP и других протоколов, не ори-
ентированных на установление соединений. Здесь сервер не закрывает соединение до тех пор, пока кли-
ент не пришлет команду "bye".
Благодаря алгоритму становится понятно, что необходимо предпринять дальше при создании сер-
вера. Первый очевидный шаг (создание сокета) рассматривался выше. Как уже упоминалось, с
этого
начинается любая сетевая программа. Следующий шаг — выбор порта — обязателен для сервера.
ñåðâåð ê ëè åí ò socket() socket() bind() bind() listen() accept() connect() read() write() read() write() close() close() shutdown () Рисунок 2. Алгоритмы построения клиента и сервера сходны, но схема подключения к сети в них разная Простой эхо-сервер Прежде чем перейти к рассмотрению системных функций, следует рассказать о том, какого рода сервер мы бу- дем создавать. В качестве образца был выбран стандартный эхо-сервер. Это основа основ серверного программиро- вания, подобно приложению "Hello, World" в программировании на языке С. Большинство соединений можно проверить, послав данные и запросив их назад в неизменном виде (эхо). Это хорошая идея для создания простейшего сервера. Аналогичным образом пишутся и отлаживаются даже самые сложные приложения. Парадигма построения и отладки В сетевом программировании приходится очень много заниматься тестированием и отладкой. Это столь сложная область, что с целью минимизации ошибок следует придерживаться простейших под- ходов к построению приложений. Парадигма построения и отладки (одна из составных частей мето- дологии ускоренной разработки программ) предписывает сконцентрироваться на решении конкретной проблемы. Когда она будет решена, полученный программный модуль станет строительным блоком для остальной части приложения В общем случае в серверной программе требуется в определенной последовательности вызвать ряд системных функций. На примере эхо-сервера можно наглядно увидеть эту последовательность, не отвлекаясь на решение других, более специфических задач. Ниже описан общий алгоритм работы эхо- сервера. 1.Создание сокета с помощью функции socket (). 2.Привязка к порту с помощью функции bind(). 3.Перевод сокета в режим прослушивания с помощью функции listen (). 4.Проверка подключения с помощью функции accept (). 5.Чтение сообщения с помощью функции recv() или read(). 6.Возврат сообщения клиенту с помощью функции send() или write (). 7.Если полученное сообщение не является строкой "bye", возврат к п. 5. 8.Разрыв соединения с помощью функции close() или shutdown(). 9.Возврат к п. 4. В приведенном алгоритме четко видны отличия от протокола UDP и других протоколов, не ори- ентированных на установление соединений. Здесь сервер не закрывает соединение до тех пор, пока кли- ент не пришлет команду "bye". Благодаря алгоритму становится понятно, что необходимо предпринять дальше при создании сер- вера. Первый очевидный шаг (создание сокета) рассматривался выше. Как уже упоминалось, с этого начинается любая сетевая программа. Следующий шаг — выбор порта — обязателен для сервера.
Страницы
- « первая
- ‹ предыдущая
- …
- 11
- 12
- 13
- 14
- 15
- …
- следующая ›
- последняя »