天天看点

Unix Network Programming(9)---Socket函数

为了执行网络I/O,一个进程必须做的第一件事就是调用socket函数,指定通信协议类型(使用IPv4的TCP,使用IPv6的UDP,Unix域字节流协议)。
#include <sys/socket.h>
int socket(int family,int type, int protocol);
                        /*返回:若成功则为非负描述符,若出错则为-1*/
           
  • family:指明协议族。AF_INET,AF_INET6,AF_LOCAL,AF_ROUTE,AF_KEY.
  • type:指明套接字类型。
type 说明
SOCK_STREAM 字节流套接字
SOCK_DGRAM 数据报套接字
SOCK_SEQPACKET 有序分组套接字
SOCK_RAW 原始套接字
  • protocol:IPPROTO_TCP、IPPROTO_UDP、IPPROTO_SCTP.或设置为0,以选择所给定family和type组合的系统默认值。

socket函数成功时返回一个小的非负整数值,它与文件描述符类似,称之为套接字描述符,简称sockfd。