From: 月吹 <getsufuki-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org>
To: mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: [bug][wishlist]I have tranlate socket(2) man into chinese
Date: Tue, 26 Jul 2011 12:51:50 +0800 [thread overview]
Message-ID: <4E2E47E6.1090805@gmail.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 328 bytes --]
subscribe linux-man
I will format it later
In memories of HIZUKI AYAKA ,the angel!
月
吹智也
[-- Attachment #2: socket_2 --]
[-- Type: text/plain, Size: 7525 bytes --]
SOCKETï¼2ï¼
åå
socket - 建ç«ä¸ä¸ªç¨äºäº¤æµç端ç¹
æ¦è¦
#include <sys/type.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 IPv4 ç½ç»åè®® ip(7)
AF_INET6 IPv6 ç½ç»åè®® ipv6(7)
AF_IPX IPX - Novell åè®®
AF_NETLINK Kernel user interface device netlink(7)
AF_X25 ITU-T X.25 / ISO-8208 åè®® x25(7)
AF_AX25 Amateur radio AX.25 åè®®
AF_ATMPVC Access to raw ATM PVCs
AF_APPLETALK Appletalk ddp(7)
AF_PACKET Low level packet interface packet(7)
奿¥å éè¿ type åæ°æ¥ç¡®å®éä¿¡è¯ä¹ãç®åå®ä¹çç±»åæï¼
SOCK_STREAM æä¾æåºçï¼å¯é çï¼ååçï¼åºäºåèæµçé讯ãå¯è½æ¯æå¤ä¿¡éä¼ è¾ã
SOCK_DGRAM æä¾æ°æ®æ¥ï¼ä¸é¢åè¿æ¥ç, ä¸å¯é çåºå®æå¤§é¿åº¦çä¿¡æ¯ï¼
SOCK_SEQPACKET æä¾æåºçï¼å¯é çï¼ååçï¼åºäºåºå®æå¤§é¿åº¦çæ°æ®æ¥ä¼ è¾è·¯å¾ï¼éè¦ä¸ä¸ªè¯»åæ´ä¸ªä¼´æè¾å
¥ç³»ç»è°ç¨çå
çç¨æ·ã
SOCK_RAW æä¾æªå å·¥(raw)çç½ç»åè®®ééã
SOCK_RDM æä¾å¯é çæ°æ®æ¥å±ï¼ä½æ¯ä¸ä¿è¯é¡ºåºã
SOCK_PACKET åºå¼çï¼ä¸åºè¯¥å¨æ°çç¨åºä¸ä½¿ç¨ï¼åèpacket(7)ã
ä¸äºå¥æ¥åç±»åå¹¶æªè¢«ææçåè®®å®ç°ï¼ ä¾å¦ï¼SOCK_SEQPACKET å¹¶ä¸è¢« AF_INET å®ç°ã
ä» Linux 2.6.27 å¼å§ï¼ type åæ°å¯ä»¥æä¾å
¶ä»çåè½ï¼ 注æä¸äº 奿¥å ç±»åå¯è½å
æ¬ä¸ä¸å¼çæä½ï¼ç¨æ¥ä¿®æ¹ socket() çè¡ä¸ºã
SOCK_NONBLOCK 设置 O_NONBLOCK çæ å¿äºæ°æå¼çæä»¶æè¿°ç¬¦ã éè¿è¿ä¸ªæ å¿å¯ä»¥ä¸ç¨è°ç¨ fcntl(2) æ¥è¾¾å°ç¸åçç»æã
SOCK_CLOEXEC 设置 close-on-exec (FD_CLOEXEC) çæ å¿äºæ°æå¼çæä»¶æè¿°ç¬¦ãåå open(2) ä¸å
³äº O_CLOEXEC çæè¿°ï¼å 为
ä¸äºåå è¿ä¸ªæ å¿å¾æç¨ã
protocol æå®ä¸ä¸ªåè®®ç¨äºå¥æ¥åãä¸è¬æ
åµä¸ï¼å¨ç»å®çåè®®ä¸åªå
许å¨ä¸ä¸ª 奿¥å ä¸ä½¿ç¨ä¸ä¸ªåè®®ï¼ æ³¨æ protocol å¯ä»¥ç¥é为æ°å 0 ã
使¯ï¼ å¯è½åå¨çå¾å¤åè®®ï¼ ä½æ¯å¨æ¬æåçåè®®å¿
须使ç¨ä¸ä¸ªãåè®®ç¨äºæå®é讯åçå°æ¹çâé讯ååâï¼ åè protocol(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 ä¿¡å·ï¼æè
å¨ SOCK_STREAM ç±»åçè¿æ¥å¨è¢«ä¸ææå°æææ¶ï¼æ¶å° SIGPIPE ä¿¡å·ãè¿ä¸ªæä½ä¹å¯è½è¢«ç¨äºè®©è¿ç¨æè¿ç¨ç»éè¿ SIGIO æ¥æ¶ I/O å I/O ä¸åæ¥çéç¥ãä½¿ç¨ F_SETOWN
çåäºä½¿ç¨äº FIOSETOWN æ SIOCSPGRP åæ°ç ioctl(2) ç³»ç»è°ç¨ã
å½ç½ç»åå议模åååºä¸ä¸ªé误æ
åµçä¿¡å·(ä¾å¦, 对 IP ä½¿ç¨ ICMP æ¶æ¯ï¼ ï¼å¥æ¥åå°ä¼è®¾ç½®ä¸ pending é误æ å¿ã 坹奿¥åæ¥ä¸å»çæä½å°ä¼è¿å pending é误çé误代ç ã对äºä¸äºåè®®ï¼å¯è½ä¼ä¸ºæ¯ä¸ä¸ªæ¥åæ¥å¯ç¨ä¸ä¸ªç¨äºååºè¯¦ç»é误信æ¯çé误åéï¼ åè§ ip(7) ä¸ç IP_RECVERR ã
奿¥åçæä½ç±å¥æ¥å级çéé¡¹æ¥æ§å¶ã è¿äºé项å®ä¹äº <sys/socket.h> ä¸ã setsockopt(2) å getsockopt(2) ç¨äºåå«ç¨äºè®¾ç½®å读åé项ã
è¿åå¼
æåæ¶ï¼ä¼è¿åæ°å¥æ¥åçæä»¶æè¿°ç¬¦ãé误æ¶ï¼è¿å -1 ï¼åæ¶ errno ä¼è¢«éå½è®¾ç½®ã
é误
EACCES ä¸å
许å建æå®ç ç±»å å/æ æå®çåè®®ç奿¥åã
EAFNOSUPPORT
å·¥å
·ä¸æ¯ææå®çå°åã
EINVAL æªç¥åè®®ï¼æåè®®ç»ä¸å¯ç¨ã
EINVAL é误ç type æ å¿ã
EMFILE è¿ç¨æä»¶è¡¨æº¢åºã
ENFILE å·²ç»è¾¾å°ç³»ç»ä¸éçæä»¶æå¼æ°ã
ENOBUFS æ ENOMEM
没æè¶³å¤çå
åï¼ç´å°æå¯ç¨çèµæºå¥æ¥åä¸è½è¢«å建ã
EPROTONOSUPPORT
åè®®ç±»åææå®çåè®®ä¸è¢«å½ååææ¯æã
å
¶å®çé误å¯è½æ¯ç±å议模å产ççã
å
¼å®¹æ§
4.4BSD, POSIX.1-2001.
SOCK_NONBLOCK ä¸ SOCK_CLOEXEC æ å¿æ¯ Linux ç¹æçã
socket() åºç°äº 4.2BSD ãé常ï¼é BSD ç³»ç»ç BSD 奿¥åå±å
鿝å¯ç§»æ¤çï¼å
æ¬ System V çåç§ï¼ã
注æ
POSIX.1-2001 å¹¶ä¸è¦æ±å
å« <sys/types.h> ï¼è¿ä¸ªå¤´æä»¶å¨ Linux 䏿¯ä¸å¿
é¡»çã 坿¯ä¸äºåå²ä¸ç (BSD) å·¥å
·è¦æ±è¿ä¸ªå¤´æä»¶ï¼ å¯ç§»æ¤ç¨åºå¾å¯è½å¸æå
å«å®ã
4.x BSD 䏿æ¾åºå®çåè®®ç»æ PF_UNIX ï¼ PF_INET ï¼ççï¼ä½æ¯ AF_UNIX çï¼å®ä»¬æ¯ç¨äºå°åç»çã坿¯ BSD ç man page ä¿è¯â åè®®ç»ä¸è¬çäºå°åç»âï¼éåçæ å卿¯ä¸ªå°æ¹é½ä½¿ç¨äº AF_* ã
<sys/types.h> æä»¶å¤´åªå¨ libc4 以忝å¿
é¡»çã ä¸äºå
ï¼ å¦ util-linux, claim ï¼æ¯ç¨äºå¨æä»¥ Linux çæ¬ååºä¸å¯ç§»æ¤çãå®ä»¬ç¡®å®éè¦è¿ä¸ªå¤´æä»¶ã
ä¾å
å¨ getaddrinfo(3) 䏿ä¸ä¸ªä½¿ç¨å¥æ¥åçä¾åã
åè§
accept(2), bind(2), connect(2), fcntl(2), getpeername(2), getsockname(2), getsockopt(2), ioctl(2), lisâ
ten(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â å¨ UNIX Programmer's Supplementary Documents Volume 1 ä¸è¢«éå°ã
âBSD Interprocess Communication Tutorialâ å¨ UNIX Programmer's Supplementary Documents Volume 1 ä¸è¢«éå°
next reply other threads:[~2011-07-26 4:51 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-07-26 4:51 月吹 [this message]
-- strict thread matches above, loose matches on Subject: below --
2011-07-26 5:47 [bug][wishlist]I have tranlate socket(2) man into chinese 月吹
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4E2E47E6.1090805@gmail.com \
--to=getsufuki-re5jqeeqqe8avxtiumwx3w@public.gmane.org \
--cc=linux-man-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=mtk.manpages-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox