ZuboLom.ru

Техника для работы с сокетами

Открытие сокета

Как и при работе с файлами в Unix работа в сети использует цикл:
Открыть/считать/записать/закрыть.
Функция сокет возвращает на дескриптор сокета, при этом в оперативе создается структура сокета.

Указатель

SocketWSAS socket(int af, int type, int protocol);


Константы для семейства адресов (af )

#define AF_INET
AF_IPX
AF_NETBIOS
AF_APPLETALK

и т.д.

Константы типов сокетов

#define SOCK_STREAM
SOCK_DGRAM
SOCK_SEQPACKET


Константы для типов протоколов

#define IPPROTO_IP
IPPROTO_TCP
IPPROTO_UDP
NSPPROTO_IPX
NSPPROTO_SPX


Открытие сокета для TCP/IP

Socket mySock = socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);


Передача данных через сокеты

Последовательность действий при обмене дейтаграммами:
Последовательность действий при обмене дейтаграммами

Последовательность действий при обмене данными через соединенный сокет:
Последовательность действий при обмене данными через соединенный сокет

Инициатором соединения всегда является клиент.

int listen(socket s, int backlog)


backlog – определяет мах длину очереди на ожидание соединения(1-5).
Само же соединение открывается функцией accept() она возвращает дескриптор socketa.
Если соединение открывается успешно, то функция accept возвращает дескриптор нового сокета который будет использоваться для передачи данных. Первый сокет освобождается и переходит в режим ожидания запросов от других сетевых пк.