Теория и практика программирования на Си в Unix

       

Некоторые вспомогательные программы


Номер порта кодируется в двух байтах, адреса Internet в 4-х. Важно, чтобы система-клиент и система-сервер пришли к соглашению по поводу порядка передаваемых байтов. Для этого имеется 4 программы, преобразующие короткие или длинные целые в кодиро-ванные значения по стандартному формату. Две первых программы используются для перехода от локального формата к сетевому, а остальные две - для обратной операции.
#include <sys/types.h>
#include <netinet/in.h>
u_long htonl (hostlong) u_long hostlong;
u_short htons (hostshort) u_short hostshort;
u_long ntohl (netlong) u_long netlong;
u_short ntohs (netshort) u_short netshort;
- Операции с данными
Три программы: bzero (), bcopy () и bcmp () позволяют инициализировать символьную строку нулями, скопировать одну строку в другую и сравнить две строки, соответственно.. В данном случае, речь идет о примитивах BSD. Подобные же примитивы существуют и системах на основе System V: memset (), memcpy () и memcmp ().
В Приложении А.3 показано средство моделирования примитивов BSD посредством примитивов System V.
- Преобразования форматов адресации
Две программы позволяют перейти от адреса Internet в форме символов (состояние,в котором он находился в файле /etc/hosts) к адресу в форме 4-х байтов и наоборот.
#include <sys/types.h>
#include <netinet/in.h>
#include <arpa/inet.h>
u_long inet_addr (адрес) char *адрес /*адрес в ASCII-символах*/
char *inet_ntoa (inadresse) struct in_addr inadresse; /*адрес в форме целого*/



Содержание раздела