Книга: UNIX: разработка сетевых приложений
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 = htons(SERV_PORT);
12 Inet_pton(AF_INET, argv[1], &servaddr.sin_addr);
13 sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
14 dg_cli(stdin, sockfd, (SA*)&servaddr, sizeof(servaddr));
15 exit(0);
16 }
Заполнение структуры адреса сокета адресом сервера
9-12
Структура адреса сокета IPv4 заполняется IP-адресом и номером порта сервера. Эта структура будет передана функции dg_cli
. Она определяет, куда отправлять дейтаграммы.
13-14
Создается сокет UDP и вызывается функция dg_cli
.
- 8.1. Введение
- 8.2. Функции recvfrom и sendto
- 8.3. Эхо-сервер UDP: функция main
- 8.4. Эхо-сервер UDP: функция dg_echo
- 8.5. Эхо-клиент UDP: функция main
- 8.6. Эхо-клиент UDP: функция dg_cli
- 8.7. Потерянные дейтаграммы
- 8.8. Проверка полученного ответа
- 8.9. Запуск клиента без запуска сервера
- 8.10. Итоговый пример клиент-сервера UDP
- 8.11. Функция connect для UDP
- 8.12. Функция dg_cli (продолжение)
- 8.13. Отсутствие управления потоком в UDP
- 8.14. Определение исходящего интерфейса для UDP
- 8.15. Эхо-сервер TCP и UDP, использующий функцию select
- 8.16. Резюме
- Упражнения
- 8.14. Определение исходящего интерфейса для UDP
- Совместимость клиентов и серверов различных версий
- Клиенты 3-го диалекта
- 2.1.3. Функция getopt_long()
- Аватар идеального клиента
- Группировка по встроенным функциям и UDF
- Определение версии клиента
- Снятие ответственности с клиента
- 19.1.1. Функция jQuery()
- Приложение 21 Образец должностной инструкции начальника отдела по работе с сетевыми клиентами
- UDP characteristics
- UDP headers