Составители:
listen Переводит заданное гнездо в режим прослушивания
recv Читает данные из заданного гнезда
recvfrom Читает дейтаграмму и исходный адрес
select Определяет статус одного или нескольких гнезд
send Посылает данные в заданное (подключенное) гнездо
sendto Посылает данные по адресу назначения
setsockopt Устанавливает параметры гнезда
shutdown Запрещает передачу и/или прием данных через указанное гнездо
socket Создает гнездо, связанное с заданным провайдером транспорт-
ных услуг
Рассмотрим параметры основных функций. Для создания гнезда используется сис-
темный вызов socket() [1, 12].
s = socket(domain, type, protocol);
где domain - тип протокола. Для протокола IP используется параметр AF_INET (Internet
протоколы);
type - тип подключения. Используется три возможных типа:
• Stream socket (SOCK_STREAM) - обеспечивает последовательный, надежный, ори-
ентированный на установление двусторонней связи поток байтов.
• Datagram socket ( SOCK_DGRAM) - поддерживает двусторонний поток данных. Не
гарантируется, что этот поток будет последовательным, надежным, и что данные не
будут дублироваться. Важной характеристикой данного гнезда является то, что гра-
ницы записи данных предопределены.
• Raw socket (SOCK_RAW) - обеспечивает возможность пользовательского доступа к
низлежащим коммуникационным протоколам, поддерживающим сокет-абстракции.
Такие гнезда обычно являются датаграм-ориентированными.
protocol - необязательный параметр, при использовании AF_INET принимает значение
0.
Функция socket создает конечную точку для коммуникаций и возвращает файло-
вый дескриптор, ссылающийся на гнездо, или -1 в случае ошибки. Данный дескриптор
используется в дальнейшем для установления связи.
Для создания гнезда типа stream с протоколом TCP, обеспечивающим коммуника-
ционную поддержку, вызов функции socket должен быть следующим:
s = socket(AF_INET, SOCK_STREAM, 0);
Гнездо создается без имени. Пока с гнездом не будет связано имя, удаленные про-
цессы не имеют возможности ссылаться на него и, следовательно, на данном гнезде не
может быть получено никаких сообщений. Коммуникационные процессы используют
для данных целей ассоциации. В Internet домене ассоциация складывается из локального
и удаленного адреса и из локального и удаленного порта. В большинстве доменов ассо-
циация должна быть уникальной.
В Internet домене связывание гнезда и имени может быть весьма сложным, но, к
счастью, обычно нет необходимости специально привязывать адрес и номер порта к
гнезду, так как функции connect и send автоматически свяжут данный socket с подходя-
щим адресом, если это не было сделано до их вызова.
Для связывания гнезда с адресом и номером порта используют системный вызов
bind:
193
listen Переводит заданное гнездо в режим прослушивания recv Читает данные из заданного гнезда recvfrom Читает дейтаграмму и исходный адрес select Определяет статус одного или нескольких гнезд send Посылает данные в заданное (подключенное) гнездо sendto Посылает данные по адресу назначения setsockopt Устанавливает параметры гнезда shutdown Запрещает передачу и/или прием данных через указанное гнездо socket Создает гнездо, связанное с заданным провайдером транспорт- ных услуг Рассмотрим параметры основных функций. Для создания гнезда используется сис- темный вызов socket() [1, 12]. s = socket(domain, type, protocol); где domain - тип протокола. Для протокола IP используется параметр AF_INET (Internet протоколы); type - тип подключения. Используется три возможных типа: • Stream socket (SOCK_STREAM) - обеспечивает последовательный, надежный, ори- ентированный на установление двусторонней связи поток байтов. • Datagram socket ( SOCK_DGRAM) - поддерживает двусторонний поток данных. Не гарантируется, что этот поток будет последовательным, надежным, и что данные не будут дублироваться. Важной характеристикой данного гнезда является то, что гра- ницы записи данных предопределены. • Raw socket (SOCK_RAW) - обеспечивает возможность пользовательского доступа к низлежащим коммуникационным протоколам, поддерживающим сокет-абстракции. Такие гнезда обычно являются датаграм-ориентированными. protocol - необязательный параметр, при использовании AF_INET принимает значение 0. Функция socket создает конечную точку для коммуникаций и возвращает файло- вый дескриптор, ссылающийся на гнездо, или -1 в случае ошибки. Данный дескриптор используется в дальнейшем для установления связи. Для создания гнезда типа stream с протоколом TCP, обеспечивающим коммуника- ционную поддержку, вызов функции socket должен быть следующим: s = socket(AF_INET, SOCK_STREAM, 0); Гнездо создается без имени. Пока с гнездом не будет связано имя, удаленные про- цессы не имеют возможности ссылаться на него и, следовательно, на данном гнезде не может быть получено никаких сообщений. Коммуникационные процессы используют для данных целей ассоциации. В Internet домене ассоциация складывается из локального и удаленного адреса и из локального и удаленного порта. В большинстве доменов ассо- циация должна быть уникальной. В Internet домене связывание гнезда и имени может быть весьма сложным, но, к счастью, обычно нет необходимости специально привязывать адрес и номер порта к гнезду, так как функции connect и send автоматически свяжут данный socket с подходя- щим адресом, если это не было сделано до их вызова. Для связывания гнезда с адресом и номером порта используют системный вызов bind: 193
Страницы
- « первая
- ‹ предыдущая
- …
- 189
- 190
- 191
- 192
- 193
- …
- следующая ›
- последняя »