I'm translating man page socket(2), how to add it to svn tree
I don't know how to make a man page,translation hasn't been completed
yet, it's too long , but I will try to do. I wonder how to add it to svn
tree and which tree.
Here is a part of it, some sentences are not correct.
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)
socket 通过 type 参数来确定通信语义。目前定义的类型有:
SOCK_STREAM 提供有序的,可靠的,双向的,基于字节流的通讯。可能支持多信道
传输。
SOCK_DGRAM 提供数据报(不面向连接的, 不可靠的固定最大长度的信息)
SOCK_SEQPACKET 提供有序的,可靠的,双向的,基于固定最大长度的数据报传输
路径;需要一个读取整个伴有输入系统调用的包的用户。
SOCK_RAW 提供未加工(raw)的网络协议通道。
SOCK_RDM 提供可靠的数据报层,但是不保证顺序。
SOCK_PACKET 废弃的,不应该在新的程序中使用,参考packet(7)。
一些 socket 类型并未被所有的协议实现; 例如,SOCK_SEQPACKET 并不被
AF_INET 实现。
从 Linux 2.6.27 开始, type 参数可以提供其他的功能: 注意一些 socket 类
型可能包括一下值的或位,用来修改 socket() 的行为。
SOCK_NONBLOCK 设置 O_NONBLOCK 的标志于新打开的文件描述符。 通过这个标志
可以不用调用 fcntl(2) 来达到相同的结果。
SOCK_CLOEXEC 设置 close-on-exec (FD_CLOEXEC) 的标志于新打开的文件描述
符。参加 open(2) 中关于 O_CLOEXEC 的描述,因为
一些原因这个标志很有用。
protocol 指定一个协议用于 socket 。一般情况下,在给定的协议中只允许在一
个 socket 上使用一个协议, 注意 protocol 可以知道为数字 0 。
但是, 可能存在着很多协议, 但是在本手册的协议必须使用一个。协议用于指定
通讯发生地方的“通讯域名”, 参考 protocol(5) 。
参考 getprotoent(3) 中关于如何把协议名称字符串与协议编号进行映射。
Reply to: