Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)

Здесь есть возможность читать онлайн «Сидни Фейт - TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)» весь текст электронной книги совершенно бесплатно (целиком полную версию без сокращений). В некоторых случаях можно слушать аудио, скачать через торрент в формате fb2 и присутствует краткое содержание. Город: Москва, Год выпуска: 2000, ISBN: 2000, Издательство: Лори, Жанр: ОС и Сети, на русском языке. Описание произведения, (предисловие) а так же отзывы посетителей доступны на портале библиотеки ЛибКат.

TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security): краткое содержание, описание и аннотация

Предлагаем к чтению аннотацию, описание, краткое содержание или предисловие (зависит от того, что написал сам автор книги «TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)»). Если вы не нашли необходимую информацию о книге — напишите в комментариях, мы постараемся отыскать её.

 Второе издание популярного справочника полностью переработано и расширено с целью предоставить читателю наиболее полное описание средств разработки, конфигурирования, использования и обслуживания сетей TCP/IP и соответствующих служб.
Книга написана увлекательно и доступно. Она содержит дополнительные материалы о нескольких протоколах Интернета, используемых серверами и браузерами WWW, а также рассматривает все последние изменения в этой области. В книгу включены главы о новом стандарте безопасности IP и протоколе IP следующего поколения, известном как IPng или IPv6. Рисунки и таблицы наглядно показывают влияние средств безопасности IP и IPng на существующие сетевые среды.
Издание содержит следующие дополнительные разделы:
• Безопасность IP и IPv6
• Описание средств WWW, новостей Интернета и приложений для работы с gopher
• Подробное описание серверов имен доменов (DNS), маски подсети и бесклассовой маршрутизации в Интернете
• Таблицы и протоколы маршрутизации
• Руководство по реализации средств безопасности для каждого из протоколов и приложений
• Примеры диалогов с новыми графическими инструментами
Новое издание бестселлера по TCP/IP станет незаменимым помощником для разработчиков сетей и приложений, для сетевых администраторов и конечных пользователей.

TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security) — читать онлайн бесплатно полную книгу (весь текст) целиком

Ниже представлен текст книги, разбитый по страницам. Система сохранения места последней прочитанной страницы, позволяет с удобством читать онлайн бесплатно книгу «TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)», без необходимости каждый раз заново искать на чём Вы остановились. Поставьте закладку, и сможете в любой момент перейти на страницу, на которой закончили чтение.

Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

bzero((char *)&servAddr, sizeof(servAddr));

servAddr.sin_family = AF_INET;

hp = gethostbyname (argv[1]);

bcopy(hp->h_addr, &servAddr.sin_addr, hp->h_length);

servAddr.sin_port = htons(atoi(argv[2]));

/* 3. Соединиться с сервером. Вызывать bind не нужно.

* Система присвоит свободный порт во время выполнения соединения. */

if (connect (sock, &servAddr, sizeof(servAddr)) < 0) {

perror("Клиент не может соединиться.\n");

exit(1);

}

/* 4. Клиент анонсирует свою готовность послать сообщение.

* Сообщение отправляется, и распечатывается последняя строка. */

printf ("CLIENT: Готов к пересылке\n");

if (send(sock, argv[3], strlen(argv[3]), 0) < 0) {

(perror("Проблемы с пересылкой.\n");

exit(1);

}

printf ("CLIENT: Пересылка завершена. Счастливо оставаться.\n");

close(sock);

exit(0);

}

21.7.1 Вызовы в клиентской программе TCP

1. sock = socket(AF_INET, SOCK_STREAM, 0);

Клиент создает блок управления пересылкой ("socket") так же, как это делал сервер.

2. Сервер должен инициализировать адресную структуру для использования в bind .

Эта структура содержит локальный IP-адрес и номер порта сервера. Клиент также инициализирует адресную структуру, хранящую те же сведения. Эта структура будет использоваться в вызове connect для указания точки назначения.

Вызов bzero () помещает нули в servAddr — адресную структуру сервера. Еще раз мы трактуем семейство адресов как Интернет.

Затем нужно преобразовать введенное пользователем имя хоста в IP-адрес. Это делает функция gethostbyname , которая возвращает указатель на структуру hostent , содержащую имя сервера и IP-адрес.

Функция bcopy применяется для копирования IP-адреса (который находится в hp->h_addr ) в servAddr .

Второй введенный конечным пользователем аргумент определял порт сервера. Он читался как текстовая строка ASCII, поэтому ее сначала нужно преобразовать в целое число через atoi (), а затем изменить порядок следования байт через htons (). Наконец номер порта копируется в адресную переменную из servAddr .

bzero((char *)&servAddr, sizeof(servAddr));

servAddr.sin_family = AF_INET;

hp = gethostbyname(argv[i]);

bcopy(hp->h_addr, &servAddr.sin_addr, hp->h_length);

servAddr.sin_port = htons(atoi(argv[2]));

3. connect(sock, &servAddr, sizeof(servAddr)); Вызов connect имеет форму:

connect(дескриптор_socket, адресная_структура, длина_адресной_структуры)

Клиент откроет соединение с сервером, IP-адрес и порт которого хранятся в адресной структуре.

4. send (sock, argv [3], strlen(argvs [3]), 0); Вызов send имеет форму:

возвращаемый_код = send(дескриптор_socket, буфер, длина_буфера, флаги)

Отметим, что введенный конечным пользователем третий аргумент (который появляется в программе как argv [ 3 ]) — это текст отправляемого сообщения. Обычно флаги используются для сообщения о срочных данных. В нашем случае параметры флагов установлены в 0.

5. close(sock);

Клиент выполняет close для закрытия соединения.

21.8 Более простой сервер

Многие серверы разрабатываются как в показанном выше примере. Однако можно использовать более упрощенную модель, когда сервер должен выполнять только простые запросы клиента (см. ниже).

Вместо создания дочернего процесса для каждого клиента сервер может непосредственно выполнять запрос, а затем закрывать соединение. Очередь сервера позволяет нескольким другим клиентам ожидать, пока он не будет готов обработать их запросы.

Ниже приведен листинг для более простого сервера. К этому серверу клиенты также могут обращаться через рассмотренную выше программу tcpclient .

/* tcpsimp.c

* Для запуска программ ввести "tcpsimp" */

/* Сначала включить стандартные заголовочные файлы. */

#include

#include

#include

#include

#include

#include

main() {

int sockMain, sockClient, length, child;

struct sockaddr_in servAddr;

/* 1. Создать главный socket. */

if ( (sockMain = socket (AF_INET, SOCK_STREAM, 0)) < 0) {

perror("Сервер не может открыть главный socket.");

exit(1);

}

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

* хранения локального IP-адреса и порта, "sin" в именах

* переменных — это сокращение от "socket internet". */

bzero((char *)&servAddr, sizeof(servAddr));

servAddr.sin_family = AF_INET;

servAddr.sin_addr.s_addr = htonl(INADDR_ANY);

servAddr.sin_port = 0;

/* 3. Вызвать bind, которая запишет используемый номер порта

* в servAddr. */

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать

Похожие книги на «TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)»

Представляем Вашему вниманию похожие книги на «TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)» списком для выбора. Мы отобрали схожую по названию и смыслу литературу в надежде предоставить читателям больше вариантов отыскать новые, интересные, ещё непрочитанные произведения.


Отзывы о книге «TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)»

Обсуждение, отзывы о книге «TCP/IP Архитектура, протоколы, реализация (включая IP версии 6 и IP Security)» и просто собственные мнения читателей. Оставьте ваши комментарии, напишите, что Вы думаете о произведении, его смысле или главных героях. Укажите что конкретно понравилось, а что нет, и почему Вы так считаете.

x