此模块提供访问BSD套接字接口。
一、底层网络接口
允许在现代modern Unix systems, Windows, Mac OS X, BeOS, OS/2与可能的其他平台上使用。(需要平台依赖) 套接地址表示:
套接字地址表示如下:单个字符串用于AF_UNIX地址族。一对(主机,端口)是用于AF_INET地址类别,其中主机是一个字符串,代表互联网域名符号像'daring.cwi.nl的像'100.50.200.5'或IPv4地址中的主机名和端口一个整数。
对于IPv4地址,接受两个特殊的形式,而不是一个主机地址:空字符串表示INADDR_ANY和字符串'代表INADDR_BROADCAST的的。行为是不是为了向后兼容的IPv6,因此,你可能会想避免这些,如果你打算在你的Python程序支持IPv6。
如果你使用一个主机名在IPv4/v6的套接字地址的主机部分中,程序会显示一个不确定的行为,Python使用DNS解析返回的第一个地址。不同的方式解决的套接字地址转换为实际的IPv4/v6地址,DNS解析或主机配置的结果而定。尽量在主机部分使用数字地址。
通过setblocking()方法支持非阻塞式模式。
通过setTimeout()方法支持普遍超时。
exception
socket.error socket抛出系统异常。
socket.herror 引发与地址相关错误。C API中包括gethostbyname_ex()和gethostbyaddr()。
socket.gaierror 由getaddrinfo() and getnameinfo()引发的地址错误。
socket.timeout 由之前使用socket引发的超时异常
2.3新增
socket.AF_UNIX
socket.AF_INET
socket.AF_INET6
这些常数代表地址(协议)的家庭,用于socket()的第一个参数。 AF_UNIX常量如果没有定义,那么这个协议是不支持的。
socket.SOCK_STREAM
socket.SOCK_DGRAM
socket.SOCK_RAW
socket.SOCK_RDM
socket.SOCK_SEQPACKET
这些常量表示套接字类型,第二个参数用于socket()。 (只有SOCK_STREAM和SOCK_DGRAM似乎是普遍有用的。)
SO_*
socket.SOMAXCONN
MSG_*
SOL_*
IPPROTO_*
IPPORT_*
INADDR_*
IP_*
IPV6_*
EAI_*
AI_*
NI_*
TCP_*
在unix文档中socket和ip端口中有很多如此的常量,普遍用在setsockopt()和getsockopt()方法中,在大多数情况中,这些unix头文件中被定义的符号已经作为默认值已经提供。
SIO_*
RCVALL_*
windows WSAIoctl()常量参数。
New in version 2.6.
TIPC_*
TIPC相关常量。匹配C socket API 输出。
socket.has_ipv6
>>> socket.has_ipv6
True 表示支持IPV6.
socket.create_connection(address[, timeout[, source_address]])
连接到一个TCP服务监听网络地址address(host,port),并返回一个socket对象。这是一个比socket.connect()高级的函数:如果是非IP地址,会尝试连接所有解析到的域名。与此同时兼容IPV6/4使得对客户端编程