Учебники

Unix Socket — Резюме

Вот список всех функций, связанных с программированием сокетов.

Порт и сервисные функции

Unix предоставляет следующие функции для извлечения имени службы из файла / etc / services.

struct servent * getservbyname (char * name, char * proto) — этот вызов принимает имя службы и имя протокола и возвращает соответствующий номер порта для этой службы.

struct servent * getservbyport (int port, char * proto) — этот вызов принимает номер порта и имя протокола и возвращает соответствующее имя службы.

unsigned short htons (unsigned short hostshort) — эта функция преобразует 16-битные (2-байтовые) величины из байтового порядка хоста в сетевой байтовый порядок.

unsigned long htonl (unsigned long hostlong) — эта функция преобразует 32-битные (4-байтовые) величины из байтового порядка хоста в сетевой байтовый порядок.

unsigned short ntohs (unsigned short netshort) — эта функция преобразует 16-битные (2-байтовые) величины из сетевого байтового порядка в хостовый.

unsigned long ntohl (unsigned long netlong) — эта функция преобразует 32-битные величины из сетевого байтового порядка в хостовый.

int inet_aton (const char * strptr, struct in_addr * addrptr) — этот вызов функции преобразует указанную строку в стандартной точечной нотации Интернета в сетевой адрес и сохраняет адрес в предоставленной структуре. Преобразованный адрес будет в сетевом порядке байтов (байты упорядочены слева направо). Возвращает 1, если строка верна, и 0 при ошибке.

in_addr_t inet_addr (const char * strptr) — этот вызов функции преобразует указанную строку в стандартной точечной нотации Интернета в целочисленное значение, подходящее для использования в качестве адреса Интернета. Преобразованный адрес будет в сетевом порядке байтов (байты упорядочены слева направо). Он возвращает 32-битный двоичный сетевой упорядоченный IPv4-адрес и INADDR_NONE при ошибке.

char * inet_ntoa (struct in_addr inaddr) — этот вызов функции преобразует указанный адрес хоста в Интернете в строку в стандартной нотации Интернета.

int socket (семейство int, тип int, протокол int) — Этот вызов возвращает дескриптор сокета, который можно использовать в последующих системных вызовах, или он дает -1 при ошибке.

int connect (int sockfd, struct sockaddr * serv_addr, int addrlen) — функция соединения используется TCP-клиентом для установления соединения с TCP-сервером. Этот вызов возвращает 0, если он успешно подключается к серверу, в противном случае он возвращает -1.

int bind (int sockfd, struct sockaddr * my_addr, int addrlen) — функция bind назначает сокету адрес локального протокола. Этот вызов возвращает 0, если он успешно связывается с адресом, в противном случае он возвращает -1.

int listen (int sockfd, int backlog) — функция прослушивания вызывается только TCP-сервером для прослушивания запроса клиента. Этот вызов возвращает 0 в случае успеха, в противном случае он возвращает -1.

int accept (int sockfd, struct sockaddr * cliaddr, socklen_t * addrlen) — TCP-сервер вызывает функцию accept для приема клиентских запросов и установления фактического соединения. Этот вызов возвращает неотрицательный дескриптор в случае успеха, в противном случае он возвращает -1.

int send (int sockfd, const void * msg, int len, int flags) — Функция отправки используется для отправки данных через потоковые сокеты или СОЕДИНЕННЫЕ сокеты датаграмм. Этот вызов возвращает количество отправленных байтов, в противном случае он возвращает -1.

int recv (int sockfd, void * buf, int len, unsigned int flags) — Функция recv используется для получения данных через потоковые сокеты или сокеты датаграмм CONNECTED. Этот вызов возвращает количество байтов, прочитанных в буфер, в противном случае он возвращает -1 в случае ошибки.

int sendto (int sockfd, const void * msg, int len, флаги unsigned int, const struct sockaddr * to, int tolen) — Функция sendto используется для отправки данных через сокеты UNCONNECTED дейтаграммы. Этот вызов возвращает количество отправленных байтов, в противном случае он возвращает -1 в случае ошибки.

int recvfrom (int sockfd, void * buf, int len, флаги unsigned int struct sockaddr * from, int * fromlen) — Функция recvfrom используется для получения данных из сокетов датаграмм UNCONNECTED. Этот вызов возвращает количество байтов, прочитанных в буфер, в противном случае он возвращает -1 в случае ошибки.

int close (int sockfd) — функция close используется для закрытия связи между клиентом и сервером. Этот вызов возвращает 0 в случае успеха, в противном случае он возвращает -1.

int shutdown (int sockfd, int how) — функция shutdown используется для постепенного закрытия связи между клиентом и сервером. Эта функция дает больше контроля по сравнению с функцией закрытия. Возвращает 0 в случае успеха, -1 в противном случае.

int select (int nfds, fd_set * readfds, fd_set * writefds, fd_set * errorfds, struct timeval * timeout) — эта функция используется для чтения или записи нескольких сокетов.

int write (int fildes, const void * buf, int nbyte) — Функция записи пытается записать n-байтовые байты из буфера, на который указывает buf, в файл, связанный с дескриптором открытого файла, fildes. После успешного завершения write () возвращает количество байтов, фактически записанных в файл, связанный с fildes. Это число никогда не превышает nbyte. В противном случае возвращается -1.

int read (int fildes, const void * buf, int nbyte) — Функция чтения пытается прочитать n-байтовые байты из файла, связанного с дескриптором открытого файла, fildes, в буфер, на который указывает buf. После успешного завершения write () возвращает количество байтов, фактически записанных в файл, связанный с fildes. Это число никогда не превышает nbyte. В противном случае возвращается -1.

int fork (void) — функция fork создает новый процесс. Новый процесс, называемый дочерним процессом, будет точной копией вызывающего процесса (родительского процесса).

void bzero (void * s, int nbyte) — функция bzero помещает нулевые байты nbyte в строку s. Эта функция будет использоваться для установки всех структур сокетов с нулевыми значениями.

int bcmp (const void * s1, const void * s2, int nbyte) — Функция bcmp сравнивает байтовую строку s1 с байтовой строкой s2. Предполагается, что длина обеих строк составляет n байтов.

void bcopy (const void * s1, void * s2, int nbyte) — функция bcopy копирует n-байтовые байты из строки s1 в строку s2. Перекрывающиеся строки обрабатываются правильно.

void * memset (void * s, int c, int nbyte) — функция memset также используется для установки структурных переменных так же, как bzero.