函数原型:
SOCKET(2) Linux Programmer's Manual SOCKET(2)
NAME
socket - create an endpoint for communication
SYNOPSIS
#include <sys/types.h> /* See NOTES */
#include <sys/socket.h>
int socket(int domain, int type, int protocol);
socket函数在成功时返回一个小的非负整数,它与文件描述符类似,我们把它称为套接字描述符,简称sockfd。为了得到这个套接字描述符,我们只是指定了协议族(IPv4或IPv6或Unix)和套接字类型(字节流、数据报或者原始套接字)。我们并没有指定本地协议地址或者远程协议地址。
参数说明,如图示:
其中family参数指明协议族,type参数指明套接字类型,protocol一般设置为0,以选择指定的family和type组合的系统默认值。
返回值:
返回:若成功则为非负描述符,若出错则为-1
IPv4的TCP伪代码如下:
int sockfd = socket(AF_INET, SOCK_STREAM, 0);
参考:《unix网络编程》·卷1