插座第三个参数传0,表示默认协议,流式协议的典型代表就是TCP协议,报式协议的典型代表就是UTP协议。
名词解释:
BSD:(Berkeley Software Distribution 伯克利发布的软件套件),主要是网络部分。
本地套接字:
本地套接字是的的的的Unix中的中进程间通讯方式,支持进程间的通信,但不能使用在跨计算机的通信中,服务端与客户端的通信流程基本与网络套接字一致,但在形式上有两点不同:
- 创建插座时,传入的域参数不同。域参数应该传入本地套接字AF_UNIX,AF_LOCAL或AP_UNIX,PF_LOCAL。
- AF:地址族,一般传入地址时使用。
- PF:协议族,一般传入协议时使用。
- 但是宏定义的值相同,一般可以混用。
- 绑定的地址需要使用sockaddr_un结构体,struct sockaddr_un结构有两个参数:sun_family,sun_path.sun_family只能是AF_LOCAL或AF_UNIX,而sun_path是本地文件的路径。通常将文件放在/ tmp目录下。
- addr.sun_family = AF_UNIX;
- 的的的strcpy(addr.sun_path中中中,“server.sock”);
- ret = bind(sockfd,(struct sockaddr *)&addr,sizeof(addr));
- 所以还需要对文件进行验证,如果文件存在绑定就会报错。
addr.sun_family = AF_UNIX;
的strcpy(addr.sun_path中,“server.sock”);
ret = bind(sockfd,(struct sockaddr *)&addr,sizeof(addr));
参考: