17.4.3. Соединение с сервером
17.4.3. Соединение с сервером
Процесс соединения с сервером через сокет домена Unix состоит из создания сокета и присоединения к требуемому адресу через функцию connect(). Как только сокет присоединен, он может обрабатываться как любой другой файловый дескриптор.
Следующая программа подключается с тем же самым сокетом, который использовался в примере сервера, и копирует его стандартные входные данные на сервер.
1: /* uclient.c */
2:
3: /* Подключиться к сокету ./sample-socket домена Unix, скопировать stdin
4: в сокет, после этого выйти из программы. */
5:
6: #include <sys/socket.h>
7: #include <sys/un.h>
8: #include <unistd.h>
9:
10: #include "sockutil.h" /* некоторые служебные функции */
11:
12: int main(void) {
13: struct sockaddr_un address;
14: int sock;
15: size_t addrLength;
16:
17: if ((sock = socket(PF_UNIX, SOCK_STREAM, 0)) < 0)
18: die("socket");
19:
20: address.sun_family = AF_UNIX; /* сокет домена Unix */
21: strcpy(address.sun_path, "./sample-socket");
22:
23: /* Общая длина адреса, включая элемент
24: sun_family */
25: addrLength = sizeof(address.sun_family) +
26: strlen(address.sun_path);
27:
28: if (connect(sock, (struct sockaddr *) &address, addrLength))
29: die("connect");
30:
31: copyData(0, sock);
32:
33: close(sock);
34:
35: return 0;
36: }
Клиент не особенно отличается от сервера. Единственные изменения состоят в том, что последовательность функций bind(), listen(), accept() заменяется одним вызовом connect(), при этом копируется немного другой набор данных.
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Установление клиентского соединения с сервером
Установление клиентского соединения с сервером Если имеется сервер с сокетом в режиме прослушивания, клиент может соединиться с ним при помощи функции connect. int connect(SOCKET s, LPSOCKADDR lpName, int nNameLen); Параметрыs — сокет, созданный с использованием функции socket.lpName — указатель на
Работа с FTP-сервером
Работа с FTP-сервером ftp_connectПроизводит подключение к FTP-серверу.Синтаксис:int ftp_connect(string host [, int port])В функции ftp_connect() аргумент host указывает имя сервера, к которому производится подключение, а необязательный аргумент port указывает какой порт нужно использовать (по умолчанию
Пример: передача текстовых строк между клиентом и сервером
Пример: передача текстовых строк между клиентом и сервером Изменим наш сервер так, чтобы он, по-прежнему принимая текстовую строку от клиента, предполагал, что строка содержит два целых числа, разделенных пробелом, и возвращал сумму этих чисел. Функции main наших клиента и
Взаимодействие с DNS-сервером
Взаимодействие с DNS-сервером Если вы хотите, чтобы к клиенту DHCP мог непосредственно обратиться любой узел сети, добиться этого можно двумя способами. Вы можете сконфигурировать сервер DHCP так, чтобы он предоставлял клиенту фиксированный IP-адрес (необходимые действия
Настройка X-клиента для работы с Х-сервером
Настройка X-клиента для работы с Х-сервером Независимо от того, используете ли вы xhost или xauth, вы должны сконфигурировать клиентскую систему для работы с нужным X-сервером. Если, например, вы работаете за компьютером term.threeroomco.com, зарегистрировались на узле biggie.threeroomco.com и
Использование клиента VNC для взаимодействия с сервером
Использование клиента VNC для взаимодействия с сервером Программа, реализующая функции клиента VNC в системе Linux, называется vncviewer. Для вызова клиента надо ввести имя программы и, возможно, имя сервера и номер дисплея.$ vncviewer vncserv.threeroomco.com:1VNC server supports protocol version 3.3 (viewer 3.3)Password:При
Резервное копирование, инициируемое сервером
Резервное копирование, инициируемое сервером При выполнении копирования, инициируемого сервером, на компьютере, к которому подключен накопитель (сервере резервного копирования), выполняется клиентская программа, поддерживающая сетевое соединение с клиентом
Резервное копирование, инициируемое сервером
Резервное копирование, инициируемое сервером Как было сказано ранее, резервное копирование, инициируемое сервером, дает возможность составить график создания резервных копий и соблюдать его. При этом основные действия по настройке производятся на компьютере,
Взаимодействие с сервером DHCP
Взаимодействие с сервером DHCP Если в вашей сети IP-адреса распределяются посредством сервера DHCP, вы не сможете задавать фиксированные адреса в конфигурационном файле зоны, так как адрес, выделенный клиенту DHCP, становится известным лишь при его загрузке и может измениться
10.4. Команды управления сервером DNS
10.4. Команды управления сервером DNS Для управления сервером DNS используется программа ndc. Ее можно использовать с параметрами start, stop, reload, restart.Параметр start запускает сервер, a stop — останавливает. Параметр reload перезагружает файлы зоны, если в них произошли изменения, а
Как настроить Internet Explorer на работу с прокси-сервером
Как настроить Internet Explorer на работу с прокси-сервером Для настройки Internet Explorer на работу с прокси-сервером:1. В меню Сервис выбираем Свойства обозревателя.2. Переходим на вкладку Подключения (рис. 10.9). 3. Если у вас используется модемное соединение (Dial-up), нужно выбрать его и
18.2.3. Взаимодействие с РОР-сервером
18.2.3. Взаимодействие с РОР-сервером Многие серверы электронной почты пользуются почтовым протоколом (Post Office Protocol — POP). Имеющийся в Ruby класс POP3 позволяет просматривать заголовки и тела всех сообщений, хранящихся для вас на сервере, и обрабатывать их как вы сочтете нужным.
11.4. Работа с сервером
11.4. Работа с сервером Если бы демонстрационную программу нужно было распространять в виде исходных текстов, сопровождать и переносить на другие платформы, потребовалось бы упаковать ее с помощью GNU-утилит Automake и Autoconf. Но их рассмотрение выходит за рамки нашей
Работа со встроенным сервером
Работа со встроенным сервером Встроенный сервер для Windows имеет те же возможности, что и Суперсервер, за исключением поддержки множества пользователей и защиты по паролю. Клиентская библиотека включена в сервер, и эта объединенная пара выполняет работу как клиента, так и
Аутентификация пользователя сервером
Аутентификация пользователя сервером Пользователь А отправляет на сервер В запрос, состоящий из билета, который был прислан в ответе ЦРК, и аутентификатора, который содержит текущее значение даты и времени, зашифрованное ключом KAB ( KAB - сеансовый ключ для пользователя