栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python Socket对象的内置函数和属性一览表

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python Socket对象的内置函数和属性一览表

应用程序通常通过“套接字”(socket)向网络发出请求或者应答网络请求,使主机间或者计算机上的进程间可以通信Python。 提供了两种访问网络服务的功能。其中低级别的网络服务通过套接字实现,它提供了标准的 BSD 套接字 API,可以访问底层操作系统套接字接口的全部方法。而高级别的网络服务通过模块 SocketServer 实现,它提供了服务器中心类,可以简化网络服务器的开发。

socket 对象的内置函数和属性。在 Socket 库中,socket 对象提供了表 1 所示的内置函数。

表 1:socket 对象的内置函数
函数功能
服务器端套接字函数
bind()用于绑定地址(host, port)到套接字,在 AF_INET 下,以元组(host, port)的形式表示地址
listen()用于开始 TCP 监听。backlog 指定在拒绝连接之前,操作系统可以挂起的最大连接数量。该值至少为 1,大部分应用程序设为 5 即可
accept()被动接受TCP客户端连接,(阻塞式)等待连接的到来
客户端套接字函数
connect()主动初始化 TCP 服务器连接,一般 address 是形式为(hostname, port)的二元组,如果连接出错,则返回socket.error错误
connect_ex()connect() 函数的扩展版本,在出错时返回出错码,而不是抛出异常
公共用途的套接字函数
recv()接收 TCP 数据,数:据以字符串形式返回,bufsize 指定要接收的最大数据量,flags 提供有关消息的其他信息,通常可以忽略
send()发送 TCP 数据,将字符串中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于字符串的长度
sendall()完整发送 TCP 数据。将字符串中的数据发送到连接的套接字,但在返回之前会尝试发送所有数据。若成功,则返回 None;若失败,则抛出异常
recvform()接收 UDP 数据,与 recv() 的功能类似,但返回值是 (data, address)。其中 data 是包含接收数据的字符串,address 是发送数据的套接字地址
公共用途的套接字函数
sendto()发送 UDP 数据,将数据发送到套接字,address 是形式为 (ipaddr, port) 的元组,用于指定远程地址。返回值是发送的字节数
close()关闭套接字
getpeername()返回连接套接字的远程地址。返回值通常是元组(ipaddr, port)

getsockname()

返回套接字自己的地址。返回值通常是元组(ipaddr, port)
setsockopt(level, optname, value)设置给定套接字选项的值
getsockopt(level, optname[,buflen])返回套接字选项的值
settimeout(timeout)设置套接字操作的超时时间,timeout 是一个浮点数,单位是秒。值为 None 表示没有超时时间。一般,超时时间应该在刚创建套接字时设置,因为它们可能用于连接的操作(如connect())
gettimeout()返回当前超时时间的值,单位是秒,如果没有设置超时时间,则返回 None
fileno()返回套接字的文件描述符
setblocking(flag)如果 flag 为 0,则将套接字设为非阻塞模式;否则,将套接字设为阻塞模式(默认值)。在非阻塞模式下,如果调用 recv() 没有发现任何数据,或 send() 调用无法立即发送数据,那么将引起 socket.error 异常
makefile()创建一个与套接字相关联的文件


除上述内置函数之外,在 socket 模块中还提供很多与网络应用开发相关的属性和异常。表 2 列出了一些比较常用的属性和异常。

表 2:socket 模块的常见属性和异常
属性和异常描述
属性
AF_UNIX、AF_INET、AF_INET6、AF_NETLINK、AF_TIPCPython 中支持的套接字地址
SOCK_STREAM、SOCK_DGRAM套接字类型 (TCP=流, UDP=数据报)
socket.AF_UNIX只能够在单一的UNIX系统进程间通信
socket.AF_INET服务器之间的网络通信
socket.AF_INET6IPv6
socket.SOCK_STREAM流式套接字,是为TCP服务的
socket.SOCK_DGRAM数据报式套接字,是为 UDP 服务的
socket.SOCK_RAW原始套接字,普通的套接字无法处理 ICMP、IGMP 等网络报文,而 SOCK_RAW 可以。另外 SOCK_RAW 也可以处理特殊的 IPv4 报文。利用原始套接字,可以通过 IP_HDRINCL 套接字选项由用户构造 IP 头
socket.SOCK_SEQPACKET可靠的连续数据包服务
has_ipv6表示是否支持 IPv6 的布尔标记
异常
error套接字错误
herror主机和地址错误
gaierror地址错误
timeout超时时间
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/929689.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号