赞
踩
socket是一组编程接口(API),也称为套接口或套接字
是一组协议无关的编程接口
主要功能是将进程发送的各种请求,映射到创建套接口时指定的,与协议有关的具体实现上
它介于传输层与应用层之间,屏蔽传输层差异,向应用层提供统一的编程接口
socket起源于Unix。
而Unix/Linux基本哲学之一就是“一切皆文件”,都可以用“打开open –> 读写write/read –> 关闭close”模式来操作。
那么可以理解为: socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
int socket(int domain, int type, int protocol);
socket()用于创建一个socket描述符(socket descriptor),它唯一标识一个socket
这个socket描述字跟文件描述字一样,后续的操作都有用到它,把它作为参数,通过它来进行一些读写操作。
参数:
1. •domain:即协议域,又称为协议族(family)。
常用的协议族有,AF_INET(IPv4)、AF_INET6(IPv6)、AF_LOCAL(或称AF_UNIX,Unix域socket)、AF_ROUTE等等。
协议族决定了socket的地址类型,在通信中必须采用对应的地址,
如AF_INET决定了要用ipv4地址(32位的)与端口号(16位的)的组合、AF_UNIX决定了要用一个绝对路径名作为地址
2. •type:指定socket类型。
常用的socket类型有,SOCK_STREAM(流式套接字)、SOCK_DGRAM(数据报式套接字)、SOCK_RAW、SOCK_PACKET、SOCK_SEQPACKET等等
3. •protocol:就是指定协议。
常用的协议有,IPPROTO_TCP、PPTOTO_UDP、IPPROTO_SCTP、IPPROTO_TIPC等,它们分别对应TCP传输协议、UDP传输协议、STCP传输协议、TIPC传输协议。
[1]: https://www.cnblogs.com/straight/articles/7660889.html
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。