Учебники

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.