socket

SOCKET(2)       Ð ÑководÑÑво пÑогÑаммиÑÑа Linux       SOCKET(2)



ÐÐЯ
       socket - ÑоздаÑÑ ÐºÐ¾Ð½ÐµÑнÑÑ ÑоÑÐºÑ ÑоединениÑ

ÐÐÐÐÐ
       #include <sys/types.h> /* ÑмоÑÑиÑе ÐÐÐÐЧÐÐÐЯ */
       #include <sys/socket.h>

       int socket(int domain, int type, int protocol);

ÐÐÐСÐÐÐÐ
       socket() ÑоздаÑÑ ÐºÐ¾Ð½ÐµÑнÑÑ ÑоÑÐºÑ ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¸
       возвÑаÑÐ°ÐµÑ ÑайловÑй деÑкÑипÑоÑ, ÑказÑваÑÑий
       на ÑÑÑ ÑоÑкÑ.

       ÐаÑамеÑÑ domain Ð·Ð°Ð´Ð°ÐµÑ Ð´Ð¾Ð¼ÐµÐ½ ÑоединениÑ:
       вÑбиÑÐ°ÐµÑ ÑемейÑÑво пÑоÑоколов, коÑоÑое бÑдеÑ
       иÑполÑзоваÑÑÑÑ Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑоединениÑ.
       СемейÑÑва опиÑÐ°Ð½Ñ Ð² <sys/socket.h>. РнаÑÑоÑÑее
       вÑÐµÐ¼Ñ ÑаÑпознаÑÑÑÑ Ñакие ÑоÑмаÑÑ:

       Ðазвание             ÐазнаÑение          СпÑавоÑÐ½Ð°Ñ ÑÑÑаниÑа
       AF_UNIX, AF_LOCAL           ÐокалÑное            unix(7)
                                   Ñоединение
       AF_INET
       T}ÐÑоÑоколÑ
       ÐнÑеÑнеÑ
       IPv4:T{ ip(7)
       AF_INET6
       T}ÐÑоÑоколÑ
       ÐнÑеÑнеÑ
       IPv6:T{ ipv6(7)
       AF_IPX                      УÑÑÑойÑÑво             netlink(7)
       T}ÐÑоÑÐ¾ÐºÐ¾Ð»Ñ            длÑ
       Novell IPX: T{              взаимодейÑÑвиÑ
       AF_NETLINK                  Ñ ÑдÑом
       AF_X25
       T}ÐÑоÑокол
       ITU-T
       X.25/ISO-8208:T{
       x25(7)
       AF_AX25                     ÐÑоÑокол
                                   лÑбиÑелÑÑкого
                                   Ñадио AX.25
       AF_ATMPVC                   AppleTalk                   ddp(7)
       T}ÐоÑÑÑп к
       низкоÑÑовневÑм
       PVC в ATM: T{
       AF_APPLETALK
       AF_PACKET                   ÐизкоÑÑовневÑй    packet(7)
                                   пакеÑнÑй
                                   инÑеÑÑейÑ
       AF_ALG                      ÐнÑеÑÑÐµÐ¹Ñ Ðº
                                   ÑдеÑномÑ
                                   кÑипÑо-API

       Ð¡Ð¾ÐºÐµÑ Ð¸Ð¼ÐµÐµÑ Ñип type, задаÑÑий ÑеманÑикÑ
       ÑоединениÑ. РнаÑÑоÑÑее вÑÐµÐ¼Ñ Ð¾Ð¿ÑеделенÑ
       ÑледÑÑÑие ÑипÑ:

       SOCK_STREAM     ÐбеÑпеÑÐ¸Ð²Ð°ÐµÑ Ñоздание
                       двÑÑÑоÑонниÑ, надÑжнÑÑ Ð¿Ð¾Ñоков
                       байÑов на оÑнове ÑÑÑановлениÑ
                       ÑоединениÑ. ÐÐ¾Ð¶ÐµÑ Ñакже
                       поддеÑживаÑÑÑÑ Ð¼ÐµÑанизм
                       внепоÑоÑнÑÑ Ð´Ð°Ð½Ð½ÑÑ.

       SOCK_DGRAM      ÐоддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ð´ÐµÐ¹ÑагÑаммÑ
                       (ненадежнÑе ÑообÑÐµÐ½Ð¸Ñ Ñ
                       огÑаниÑенной длиной без
                       ÑÑÑановки ÑоединениÑ).

       SOCK_SEQPACKET  ÐбеÑпеÑÐ¸Ð²Ð°ÐµÑ ÑабоÑÑ
                       поÑледоваÑелÑного двÑÑÑоÑоннего
                       канала Ð´Ð»Ñ Ð¿ÐµÑедаÑи дейÑагÑамм
                       на оÑнове Ñоединений;
                       дейÑагÑÐ°Ð¼Ð¼Ñ Ð¸Ð¼ÐµÑÑ Ð¿Ð¾ÑÑоÑннÑй
                       ÑазмеÑ; Ð¾Ñ Ð¿Ð¾Ð»ÑÑаÑÐµÐ»Ñ ÑÑебÑеÑÑÑ Ð·Ð°
                       один Ñаз пÑоÑиÑаÑÑ ÑелÑй пакеÑ.

       SOCK_RAW        ÐбеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð¿ÑÑмой доÑÑÑп к
                       ÑеÑÐµÐ²Ð¾Ð¼Ñ Ð¿ÑоÑоколÑ.

       SOCK_RDM        ÐбеÑпеÑÐ¸Ð²Ð°ÐµÑ Ð½Ð°Ð´ÐµÐ¶Ð½ÑÑ Ð´Ð¾ÑÑавкÑ
                       дейÑагÑамм без гаÑанÑии, ÑÑо они
                       бÑдÑÑ ÑаÑÐ¿Ð¾Ð»Ð¾Ð¶ÐµÐ½Ñ Ð¿Ð¾ поÑÑдкÑ.

       SOCK_PACKET     УÑÑаÑел и не должен иÑполÑзоваÑÑÑÑ
                       в новÑÑ Ð¿ÑогÑаммаÑ; Ñм. packet(7).

       ÐекоÑоÑÑе ÑÐ¸Ð¿Ñ ÑокеÑов могÑÑ Ð±ÑÑÑ Ð½Ðµ
       ÑÐµÐ°Ð»Ð¸Ð·Ð¾Ð²Ð°Ð½Ñ Ð²Ð¾ вÑÐµÑ ÑемейÑÑÐ²Ð°Ñ Ð¿ÑоÑоколов.

       ÐаÑÐ¸Ð½Ð°Ñ Ñ Linux 2.6.27, аÑгÑÐ¼ÐµÐ½Ñ type
       пÑедназнаÑаеÑÑÑ Ð´Ð»Ñ Ð´Ð²ÑÑ Ð²ÐµÑей: кÑоме
       опÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ñипа ÑокеÑа, Ð´Ð»Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ
       Ð¿Ð¾Ð²ÐµÐ´ÐµÐ½Ð¸Ñ socket() он Ð¼Ð¾Ð¶ÐµÑ ÑодеÑжаÑÑ
       побиÑово ÑложеннÑе лÑбÑе ÑледÑÑÑие
       знаÑениÑ:

       SOCK_NONBLOCK   УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ñлаг ÑоÑÑоÑÐ½Ð¸Ñ Ñайла
                       O_NONBLOCK Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ оÑкÑÑÑого
                       Ñайлового деÑкÑипÑоÑа.
                       ÐÑполÑзование данного Ñлага
                       заменÑÐµÑ Ð´Ð¾Ð¿Ð¾Ð»Ð½Ð¸ÑелÑнÑе вÑзовÑ
                       fcntl(2) Ð´Ð»Ñ Ð´Ð¾ÑÑÐ¸Ð¶ÐµÐ½Ð¸Ñ Ñого же
                       ÑезÑлÑÑаÑа.

       SOCK_CLOEXEC    УÑÑÐ°Ð½Ð°Ð²Ð»Ð¸Ð²Ð°ÐµÑ Ñлаг close-on-exec
                       (FD_CLOEXEC) Ð´Ð»Ñ Ð½Ð¾Ð²Ð¾Ð³Ð¾ оÑкÑÑÑого
                       Ñайлового деÑкÑипÑоÑа. СмоÑÑиÑе
                       опиÑание Ñлага O_CLOEXEC в open(2) длÑ
                       Ñого, ÑÑÐ¾Ð±Ñ ÑзнаÑÑ ÐºÐ°Ðº ÑÑо можеÑ
                       пÑигодиÑÑÑÑ.

       Ð protocol задаÑÑÑÑ Ð¾Ð¿ÑеделÑннÑй пÑоÑокол,
       иÑполÑзÑемÑй Ñ ÑокеÑом. ÐбÑÑно, ÑолÑко
       единÑÑвеннÑй пÑоÑокол ÑÑÑеÑÑвÑÐµÑ Ð´Ð»Ñ
       поддеÑжи опÑеделÑнного Ñипа ÑокеÑа Ñ
       заданнÑм ÑемейÑÑвом пÑоÑоколов, в ÑÑом
       ÑлÑÑае в protocol можно ÑказаÑÑ 0. Ðднако, можеÑ
       ÑÑÑеÑÑвоваÑÑ Ð½ÐµÑколÑко пÑоÑоколов, Ñогда
       нÑжно ÑказаÑÑ Ð¾Ð´Ð¸Ð½ из ниÑ. ÐомеÑ
       иÑполÑзÑемого пÑоÑокола завиÑÐ¸Ñ Ð¾Ñ "домена
       Ñоединениє, по коÑоÑÐ¾Ð¼Ñ ÑÑÑанавливаеÑÑÑ
       Ñоединение; Ñм. protocols(5). СмоÑÑиÑе getprotoent(3),
       где опиÑано, как ÑооÑноÑиÑÑ Ð¸Ð¼ÐµÐ½Ð°
       пÑоÑоколов Ñ Ð¸Ñ Ð½Ð¾Ð¼ÐµÑами.

       СокеÑÑ Ñипа SOCK_STREAM ÑвлÑÑÑÑÑ ÑоединениÑми
       полнодÑплекÑнÑÑ Ð±Ð°Ð¹ÑовÑÑ Ð¿Ð¾Ñоков. Ðни не
       ÑоÑÑанÑÑÑ Ð³ÑаниÑÑ Ð·Ð°Ð¿Ð¸Ñей. ÐоÑоковÑй ÑокеÑ
       должен бÑÑÑ Ð² ÑоÑÑоÑнии ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð¿ÐµÑед
       Ñем, как из него можно бÑÐ´ÐµÑ Ð¾ÑÑÑлаÑÑ Ð´Ð°Ð½Ð½Ñе
       или пÑинимаÑÑ Ð¸Ñ. Соединение Ñ Ð´ÑÑгим
       ÑокеÑом ÑоздаеÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑиÑÑемного вÑзова
       connect(2). ÐоÑле ÑÐ¾ÐµÐ´Ð¸Ð½ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½Ñе можно
       пеÑедаваÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ ÑиÑÑемнÑÑ Ð²Ñзовов read(2) и
       write(2) или одного из ваÑианÑов ÑиÑÑемнÑÑ
       вÑзовов send(2) и recv(2). Ðогда ÑÐµÐ°Ð½Ñ Ð·Ð°ÐºÐ¾Ð½Ñен,
       вÑполнÑеÑÑÑ ÐºÐ¾Ð¼Ð°Ð½Ð´Ð° close(2). ÐнепоÑоÑнÑе
       даннÑе могÑÑ Ð¿ÐµÑедаваÑÑÑÑ, как опиÑано в
       send(2), и пÑинимаÑÑÑÑ, как опиÑано в recv(2).

       ÐÑоÑÐ¾ÐºÐ¾Ð»Ñ ÑвÑзи, коÑоÑÑе ÑеализÑÑÑ SOCK_STREAM,
       ÑледÑÑ, ÑÑÐ¾Ð±Ñ Ð´Ð°Ð½Ð½Ñе не бÑли поÑеÑÑÐ½Ñ Ð¸Ð»Ð¸
       дÑблиÑованÑ. ÐÑли ÑаÑÑÑ Ð´Ð°Ð½Ð½ÑÑ, Ð´Ð»Ñ ÐºÐ¾ÑоÑÑÑ
       имееÑÑÑ Ð¼ÐµÑÑо в бÑÑеÑе пÑоÑокола, не можеÑ
       бÑÑÑ Ð¿ÐµÑедана за опÑеделÑнное вÑемÑ,
       Ñоединение ÑÑиÑаеÑÑÑ ÑазоÑваннÑм. Ðогда в
       ÑокеÑе вклÑÑен Ñлаг SO_KEEPALIVE, пÑоÑокол
       каким-либо ÑпоÑобом пÑовеÑÑеÑ, не оÑклÑÑена
       ли еÑÑ Ð´ÑÑÐ³Ð°Ñ ÑÑоÑона. ÐÑли пÑоÑеÑÑ Ð¿Ð¾ÑÑÐ»Ð°ÐµÑ Ð¸Ð»Ð¸
       пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð´Ð°Ð½Ð½Ñе, полÑзÑÑÑÑ Â«ÑазоÑваннÑм»
       поÑоком, ÐµÐ¼Ñ Ð²ÑдаÑÑÑÑ Ñигнал SIGPIPE; ÑÑо
       пÑÐ¸Ð²Ð¾Ð´Ð¸Ñ Ðº ÑомÑ, ÑÑо пÑоÑеÑÑÑ, не
       обÑабаÑÑваÑÑие ÑÑÐ¾Ñ Ñигнал, завеÑÑаÑÑÑÑ. СокеÑÑ
       SOCK_SEQPACKET иÑполÑзÑÑÑ Ñе же ÑамÑе ÑиÑÑемнÑе
       вÑзовÑ, ÑÑо и ÑокеÑÑ SOCK_STREAM. ÐдинÑÑвенное
       оÑлиÑие в Ñом, ÑÑо вÑÐ·Ð¾Ð²Ñ read(2) возвÑаÑаÑÑ
       ÑолÑко запÑоÑенное колиÑеÑÑво даннÑÑ, а
       оÑÑалÑнÑе даннÑе пÑиÑедÑего пакеÑа бÑдÑÑ
       оÑбÑоÑенÑ. ÐÑаниÑÑ ÑообÑений во вÑодÑÑиÑ
       дейÑагÑÐ°Ð¼Ð¼Ð°Ñ ÑоÑÑанÑÑÑÑÑ.

       СокеÑÑ SOCK_DGRAM и SOCK_RAW позволÑÑÑ Ð¿Ð¾ÑÑлаÑÑ
       дейÑагÑÐ°Ð¼Ð¼Ñ Ð¿ÑинимаÑÑей ÑÑоÑоне, заданной
       пÑи вÑзове sendto(2). ÐейÑагÑÐ°Ð¼Ð¼Ñ Ð¾Ð±ÑÑно
       пÑинимаÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð²Ñзова recvfrom(2), коÑоÑÑй
       возвÑаÑÐ°ÐµÑ ÑледÑÑÑÑÑ Ð´ÐµÐ¹ÑагÑÐ°Ð¼Ð¼Ñ Ñ
       ÑооÑвеÑÑÑвÑÑÑим обÑаÑнÑм адÑеÑом.

       Тип SOCK_PACKET ÑÑиÑаеÑÑÑ ÑÑÑаÑевÑим Ñипом ÑокеÑа;
       он позволÑÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ð½ÐµÐ¾Ð±ÑабоÑаннÑе пакеÑÑ
       пÑÑмо Ð¾Ñ Ð´ÑайвеÑа ÑÑÑÑойÑÑва. ÐÑполÑзÑйÑе
       вмеÑÑо него packet(7).

       СиÑÑемнÑй вÑзов fcntl(2) Ñ Ð°ÑгÑменÑом F_SETOWN
       Ð¼Ð¾Ð¶ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð¸Ñ Ð³ÑÑппÑ
       пÑоÑеÑÑов, коÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑаÑÑ Ñигнал SIGURG,
       когда пÑибÑваÑÑ Ð²Ð½ÐµÐ¿Ð¾ÑоÑнÑе даннÑе, или
       Ñигнал SIGPIPE, когда Ñоединение Ñипа SOCK_STREAM
       неожиданно обÑÑваеÑÑÑ. ÐÑÐ¾Ñ Ð²Ñзов Ñакже
       можно иÑполÑзоваÑÑ, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð´Ð°ÑÑ Ð¿ÑоÑеÑÑ Ð¸Ð»Ð¸
       гÑÑÐ¿Ð¿Ñ Ð¿ÑоÑеÑÑов, коÑоÑÑе полÑÑаÑÑ Ð°ÑинÑÑоннÑе
       ÑÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾ ÑобÑÑиÑÑ Ð²Ð²Ð¾Ð´Ð°-вÑвода Ñ
       помоÑÑÑ SIGIO. ÐÑполÑзование F_SETOWN
       ÑквиваленÑно иÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ð²Ñзова ioctl(2) Ñ
       аÑгÑменÑом FIOSETOWN или SIOCSPGRP.

       Ðогда ÑеÑÑ ÑообÑÐ°ÐµÑ Ð¼Ð¾Ð´ÑÐ»Ñ Ð¿ÑоÑокола об
       оÑибке (напÑимеÑ, в ÑлÑÑае IP, иÑполÑзÑÑ
       ICMP-ÑообÑение), Ñо Ð´Ð»Ñ ÑокеÑа ÑÑÑанавливаеÑÑÑ
       Ñлаг ожидаÑÑей оÑибки. СледÑÑÑÐ°Ñ Ð¾Ð¿ÐµÑаÑиÑ
       ÑÑого ÑокеÑа веÑнÑÑ ÐºÐ¾Ð´ ожидаÑÑей оÑибки.
       ÐекоÑоÑÑе пÑоÑÐ¾ÐºÐ¾Ð»Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÑÑ Ð¾ÑганизовÑваÑÑ
       оÑеÑÐµÐ´Ñ Ð¾Ñибок в ÑокеÑе Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑениÑ
       подÑобной инÑоÑмаÑÐ¸Ñ Ð¾Ð± оÑибке; Ñм. IP_RECVERR в
       ip(7).

       ÐпеÑаÑии ÑокеÑов конÑÑолиÑÑÑÑÑÑ Ð¸Ñ Ð¿Ð°ÑамеÑÑами
       options. ÐÑи паÑамеÑÑÑ Ð¾Ð¿Ð¸ÑÐ°Ð½Ñ Ð² <sys/socket.h>. ÐÑзовÑ
       setsockopt(2) и getsockopt(2) иÑполÑзÑÑÑÑÑ, ÑÑобÑ
       ÑÑÑановиÑÑ Ð¸ полÑÑиÑÑ Ð½ÐµÐ¾Ð±ÑодимÑе паÑамеÑÑÑ
       ÑооÑвеÑÑÑвенно.

ÐÐÐÐÐ ÐЩÐÐÐÐÐ ÐÐÐЧÐÐÐÐ
       Ð ÑлÑÑае ÑÑпеÑного вÑÐ¿Ð¾Ð»Ð½ÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð²ÑаÑаеÑÑÑ
       деÑкÑипÑоÑ, ÑÑÑлаÑÑийÑÑ Ð½Ð° ÑокеÑ. Ð ÑлÑÑае
       оÑибки возвÑаÑаеÑÑÑ -1, а знаÑение errno
       ÑÑÑанавливаеÑÑÑ ÑооÑвеÑÑÑвÑÑÑим обÑазом.

ÐШÐÐÐÐ
       EACCES ÐÐµÑ Ð¿Ñав на Ñоздание ÑокеÑа Ñказанного
              Ñипа и/или пÑоÑокола.

       EAFNOSUPPORT
              РеализаÑÐ¸Ñ Ð½Ðµ поддеÑÐ¶Ð¸Ð²Ð°ÐµÑ Ñказанное
              ÑемейÑÑва адÑеÑов.

       EINVAL ÐеизвеÑÑнÑй пÑоÑокол или недоÑÑÑпное
              ÑемейÑÑво пÑоÑоколов.

       EINVAL ÐевеÑнÑе Ñлаги в type.

       EMFILE ÐÑло доÑÑигнÑÑо огÑаниÑение по
              колиÑеÑÑÐ²Ñ Ð¾ÑкÑÑÑÑÑ ÑайловÑÑ Ð´ÐµÑкÑипÑоÑов
              на пÑоÑеÑÑ.

       ENFILE ÐоÑÑигнÑÑо макÑималÑное колиÑеÑÑво
              оÑкÑÑÑÑÑ Ñайлов в ÑиÑÑеме.

       ENOBUFS или ENOMEM
              ÐедоÑÑаÑоÑно памÑÑи Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÑокеÑа.
              Ð¡Ð¾ÐºÐµÑ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ñоздан, пока не
              бÑÐ´ÐµÑ Ð¾Ñвобождено доÑÑаÑоÑное
              колиÑеÑÑво ÑеÑÑÑÑов.

       EPROTONOSUPPORT
              Тип пÑоÑокола или ÑказаннÑй пÑоÑокол
              не поддеÑживаÑÑÑÑ Ð² ÑÑом домене.

       ÐÑÑгие оÑибки могÑÑ Ð±ÑÑÑ ÑÐ¾Ð·Ð´Ð°Ð½Ñ Ð¼Ð¾Ð´ÑлÑми
       пÑоÑоколов более низкого ÑÑовнÑ.

СÐÐТÐÐТСТÐÐРСТÐÐÐÐРТÐÐ
       POSIX.1-2001, POSIX.1-2008, 4.4BSD.

       Флаги SOCK_NONBLOCK и SOCK_CLOEXEC еÑÑÑ ÑолÑко в Linux.

       ÐÑзов socket() поÑвилÑÑ Ð² 4.2BSD. ÐбÑÑно он
       пеÑеноÑим в/из не-BSD ÑиÑÑем на ÑÑовне
       ÑокеÑов BSD (вклÑÑÐ°Ñ Ð²Ð°ÑианÑÑ System V).

ÐÐÐÐЧÐÐÐЯ
       Ð POSIX.1 не ÑÑебÑеÑÑÑ Ð²ÐºÐ»ÑÑение <sys/types.h>, и ÑÑоÑ
       заголовоÑнÑй Ñайл не ÑÑебÑеÑÑÑ Ð² Linux. Ðднако,
       Ð´Ð»Ñ Ð½ÐµÐºÐ¾ÑоÑÑÑ ÑÑаÑÑÑ ÑеализаÑий (BSD) ÑÑебÑеÑ
       даннÑй Ñайл, и в пеÑеноÑимÑÑ Ð¿ÑиложениÑÑ Ð´Ð»Ñ
       пÑедоÑÑоÑожноÑÑи, веÑоÑÑно, лÑÑÑе его ÑказаÑÑ.

       ÐÐ»Ñ ÑемейÑÑв пÑоÑоколов в 4.x BSD иÑполÑзÑÑÑÑÑ
       конÑÑанÑÑ PF_UNIX, PF_INET, PF_INET и Ñ. д., Ñогда как
       AF_UNIX, AF_INET и Ñ. п. иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑказаниÑ
       ÑемейÑÑва адÑеÑов. Ðднако, в ÑпÑавоÑной
       ÑÑÑаниÑе BSD Ñказано: «ÐбÑÑно, ÑемейÑÑво
       пÑоÑоколов ÑÐ¾Ð²Ð¿Ð°Ð´Ð°ÐµÑ Ñ ÑемейÑÑвом адÑеÑов»
       и во вÑÐµÑ Ð¿Ð¾ÑледÑÑÑÐ¸Ñ ÑÑандаÑÑÐ°Ñ Ð¸ÑполÑзÑеÑÑÑ
       AF_*.

       Тип пÑоÑокола AF_ALG бÑл добавлен в Linux 2.6.38.
       ÐодÑобноÑÑи об ÑÑом инÑеÑÑейÑе ÑмоÑÑиÑе в
       HTML-докÑменÑаÑии ÑдÑа на ÑÑÑаниÑе
       https://www.kernel.org/doc/htmldocs/crypto-API/User.html.

ÐÐ ÐÐÐÐ
       ÐÑÐ¸Ð¼ÐµÑ Ð¸ÑполÑÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ socket() показан в
       getaddrinfo(3).

СÐÐТРÐТРТÐÐÐÐ
       accept(2), bind(2), close(2), connect(2), fcntl(2), getpeername(2),
       getsockname(2), getsockopt(2), ioctl(2), listen(2), read(2), recv(2),
       select(2), send(2), shutdown(2), socketpair(2), write(2),
       getprotoent(3), ip(7), socket(7), tcp(7), udp(7), unix(7)

       “An Introductory 4.3BSD Interprocess Communication Tutorial” and “BSD
       Interprocess Communication Tutorial”, reprinted in UNIX Programmer's
       Supplementary Documents Volume 1.



Linux                             2015-12-28                         SOCKET(2)