本文讲解编写一个完整的TCP客户/服务器程序所需要的基本套接字函数。
socket函数
为了执行网络I/O,一个进程必须做的第一件事情就是调用socket函数,指定期望的通信协议类型(TCP、UDP、Unix域等)
#include<sys/socket.h>
int socket(int family, int type, int protocol);
返回:若成功则为非负描述符,若出错则为-1
参数family指明协议族,他的取值如下图所示:
![37cedfd39c471a0ae9a4884fb776b236.png](https://img-blog.csdnimg.cn/img_convert/37cedfd39c471a0ae9a4884fb776b236.png)
参数type指明套接字类型,他的取值如下所示:
![d64ca78805458077dedd5488fa089f49.png](https://img-blog.csdnimg.cn/img_convert/d64ca78805458077dedd5488fa089f49.png)
参数protocol 指定为某个具体的协议类型常值,或者指定为0,根据给定的family和type组合,系统选择默认的值。