21.11.1 Запросы в клиентской программе UDP

We use cookies. Read the Privacy and Cookie Policy

21.11.1 Запросы в клиентской программе UDP

1. sock = socket(AF_INET, SOCK_DGRAM, 0); UDP клиента создает socket для UDP.

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

servAddr.sin_family = AF_INET;

hp = gethostbyname(argv[1]);

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

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

Структура servAddr заполнена введенными конечным пользователем значениями, как это делалось и в клиенте для TCP.

3. bind (sock, &clientAddr, sizeof(clientAddr)); Клиент вызывает bind для получения порта.

4. sendto(sock, argv[3], strlen(argv[3]), 0, &servAddr, sizeof(servAddr));

Вызов sendto имеет форму:

sendto(дескриптор_socket, буфер, длина_буфера, флаги, адресная_структура_назначения, длина адресной_структуры_назначения)

Этот запрос содержит всю информацию о точке назначения, необходимую для отправки датаграммы протокола UDP.