11.4.2 socket 函数
11.4.2 socket 函数
客户端和服务器使用 socket 函数来创建一个套接字描述符(socket descriptor)。
#include <sys/types.h>
#include <sys/socket.h>
int socket(int domain, int type, int protocol);返回: 若成功则为非负描述符,若出错则为 -1。
如果想要使套接字成为连接的一个端点,就用如下硬编码的参数来调用 socket 函数:
clientfd = Socket(AF_INET, SOCK_STREAM, 0);其中,AF_INET 表明我们正在使用 32 位 IP 地址,而 SOCK_STREAM 表示这个套接字是连接的一个端点。不过最好的方法是用 getaddrinfo 函数(11.4.7 节)来自动生成这些参数,这样代码就与协议无关了。我们会在 11.4.8 节中向你展示如何配合 socket 函数来使用 getaddrinfo。
socket 返回的 clientfd 描述符仅是部分打开的,还不能用于读写。如何完成打开套接字的工作,取决于我们是客户端还是服务器。下一节描述当我们是客户端时如何完成打开套接字的工作。