5.4. Эхо-клиент TCP: функция main

5.4. Эхо-клиент TCP: функция main

В листинге 5.3 показана функция main TCP-клиента.

Листинг 5.3. Эхо-клиент TCP

//tcpcliserv/tcpcli01.c

 1 #include "unp.h"

 2 int

 3 main(int argc, char **argv)

 4 {

 5  int sockfd;

 6  struct sockaddr_in servaddr;

 7  if (argc != 2)

 8   err_quit("usage: tcpcli <Ipaddress>");

 9  sockfd = Socket(AF_INET, SOCK_STREAM, 0);

10  bzero(&servaddr. sizeof(servaddr));

11  servaddr.sin_family = AF_INET;

12  servaddr.sin_port = htons(SERV_PORT);

13  Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);

14  Connect(sockfd, (SA*)&servaddr, sizeof(servaddr));

15  str_cli(stdin, sockfd); /* эта функция выполняет все необходимые

                               действия со стороны клиента */

16  exit(0);

17 }

Создание сокета, заполнение структуры его адреса

9-13 Создается сокет TCP и структура адреса сокета заполняется IP-адресом сервера и номером порта. IP-адрес сервера мы берем из командной строки, а известный номер порта сервера (SERV_PORT) — из нашего заголовочного файла unp.h.

Соединение с сервером

14-15 Функция connect устанавливает соединение с сервером. Затем функция str_cli (см. листинг 5.4) выполняет все необходимые действия со стороны клиента.

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

main

Из книги Документация NetAMS автора Автор неизвестен

main show versionshow config [unsecure] [oids]show connectionsshow usersshow scheduleshow units [ syspolicy [whereset] |email | hash | name XXX |mac [whereset] | unit_type ]show processorshow dsshow alertershow monitorshow list [full] [name XXX | OID YY]show policyshow quota [oid ID | name XXX | list]show loginshow perf filename [header]show healthuser { oid OID | name user_name }[real–name user_human_name][email email_addr][password pass][crypted crypted_pass][permit permit_state]no user {


Main

Из книги Собираем компьютер своими руками автора Ватаманюк Александр Иванович

Main В данной секции представлены следующие параметры.• System Time. Отображает текущее системное время. Его можно изменить, однако, как правило, пользователи настраивают системное время с помощью средств операционной системы, а не BIOS.• System Date. Показывает системную дату,


Main

Из книги Системное программирование в среде Windows автора Харт Джонсон М

Main Данная секция содержит параметры, отвечающие за определение и настройку устройств хранения данных, системного таймера, безопасность BIOS и т. д.• System Date. Ответственен за системную дату, можно изменить.• System Time. Отвечает за работу системного таймера и представляет


Обобщенная функция Main

Из книги C++ для начинающих автора Липпман Стенли

Обобщенная функция Main Обозначение С-функции main с ее списком аргументов (argv[]) следует заменить макросом _tmain. В зависимости от определения символической константы _UNICODE макрос разворачивается либо до main, либо до wmain. _tmain определяется в заголовочном файле <tchar.h>, который


Функция main()

Из книги UNIX: разработка сетевых приложений автора Стивенс Уильям Ричард

Функция main() Задачей новой функции main(), которая вызывается SCM, является регистрация службы в SCM и запуск диспетчера службы (service control dispatcher). Для этого необходимо вызвать функцию StartServiceControlDispatcher, передав ей имя (имена) и точку (точки) входа одной или нескольких логических


5.2. Эхо-сервер TCP: функция main

Из книги автора

5.2. Эхо-сервер TCP: функция main Наши клиент и сервер TCP используют функции, показанные на рис. 4.1. Программа параллельного сервера представлена в листинге 5.1[1].Листинг 5.1. Эхо-сервер TCP (улучшенный в листинге 5.9)//tcpcliserv/tcpserv01.с 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5  int listenfd, connfd; 6  pid_t


5.5. Эхо-клиент TCP: функция str_cli

Из книги автора

5.5. Эхо-клиент TCP: функция str_cli Эта функция, показанная в листинге 5.4, обеспечивает отправку запроса клиента и прием ответа сервера в цикле. Функция считывает строку текста из стандартного потока ввода, отправляет ее серверу и считывает отраженный ответ сервера, после чего


8.3. Эхо-сервер UDP: функция main

Из книги автора

8.3. Эхо-сервер UDP: функция main Теперь мы переделаем нашу простую модель клиент-сервер из главы 5, используя UDP. Диаграмма вызовов функций в программах наших клиента и сервера UDP показана на рис. 8.1. На рис. 8.2 представлены используемые функции. В листинге 8.1[1] показана функция


8.5. Эхо-клиент UDP: функция main

Из книги автора

8.5. Эхо-клиент UDP: функция main Функция main клиента UDP показана в листинге 8.3.Листинг 8.3. Эхо-клиент UDP//udpcliserv/udpcli01.c 1 #include "unp.h" 2 int 3 main(int argc, char **argv) 4 { 5  int sockfd; 6  struct sockaddr_in servaddr; 7  if (argc != 2) 8   err_quit("usage: udpcli <Ipaddress>"); 9  bzero(&servaddr, sizeof(servaddr));10  servaddr.sin_family = AF_INET;11  servaddr.sin_port =


8.6. Эхо-клиент UDP: функция dg_cli

Из книги автора

8.6. Эхо-клиент UDP: функция dg_cli В листинге 8.4 показана функция dg_cli, которая выполняет большую часть работы на стороне клиента.Листинг 8.4. Функция dg_cli: цикл обработки клиента//lib/dg_cli.c 1 #include "unp.h" 2 void 3 dg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen) 4 { 5  int n; 6  char sendline[MAXLINE], recvline[MAXLINE + 1]; 7 


10.2. Потоковый эхо-сервер SCTP типа «один-ко-многим»: функция main

Из книги автора

10.2. Потоковый эхо-сервер SCTP типа «один-ко-многим»: функция main Наши клиент и сервер SCTP вызывают функции в последовательности, представленной на рис. 9.2. Код последовательного сервера представлен в листинге 10.1[1].Листинг 10.1. Потоковый эхо-сервер SCTP//sctp/sctpserv01.c 1 #include "unp.h" 2 int 3


16.4. Неблокируемая функция connect: клиент времени и даты

Из книги автора

16.4. Неблокируемая функция connect: клиент времени и даты В листинге 16.7 показана наша функция connect_nonb, вызывающая неблокируемую функцию connect. Мы заменяем вызов функции connect, имеющийся в листинге 1.1, следующим фрагментом кода:if (connect_nonb(sockfd, (SA*)&servaddr, sizeof(servaddr), 0) < 0)err_sys("connect