socket通常也称作"套接字",用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求。
socket起源于Unix,而Unix/Linux基本哲学之一就是“一切皆文件”,对于文件用【打开】【读写】【关闭】模式来操作。socket就是该模式的一个实现,socket即是一种特殊的文件,一些socket函数就是对其进行的操作(读/写IO、打开、关闭)
socket和file的区别:
- file模块是针对某个指定文件进行【打开】【读写】【关闭】
- socket模块是针对 服务器端 和 客户端Socket 进行【打开】【读写】【关闭】
Socket Families(地址簇) | 意义 |
socket.AF_UNIX |
UNIX域(只能够用于单一的Unix系统进程间通信),地址由单独一个string表示 |
socket.AF_INET |
IPv4因特网域 (服务器之间网络通信),地址由(host, port) 表示 |
socket.AF_INET6 |
IPv6因特网域,地址由(host, port, flowinfo, scopeid) 表示 |
socket.AF_UNSPEC | 未指定协议 |
socket_type | 意义 |
---|---|
socket. SOCK_STREAM |
有序的,可靠的,双向的,面向连接的字节流(默认TCP协议) |
socket.SOCK_DGRAM | 固定长度的,无连接的,不可开的报文传递(for udp ) |
socket.SOCK_RAW | IP协议的数据报接口,是一种可靠的UDP形式,即保证交付数据报但不保证顺序。SOCK_RAM用来提供对原始协议的低级 |