gevent._socket3
--python 3插座模块#
Python 3插槽模块。
- class socket(family=-1, type=-1, proto=-1, fileno=None)[源代码]#
基类:
SocketMixin
Gevent socket.socket 对于python 3。
这个对象应该具有与上面链接的标准库套接字相同的API。并非所有方法都是在这里专门记录的;当它们是时,它们可能指出需要注意的差异,或者可能记录标准库没有的方法。
- accept() -> (socket object, address info)[源代码]#
等待传入连接。返回一个表示连接和客户机地址的新套接字。对于IP套接字,地址信息是一对(hostaddr,port)。
- bind(address)#
将套接字绑定到本地地址。对于IP套接字,地址是一对(主机、端口);主机必须引用本地主机。对于原始数据包套接字,地址是元组(ifname,proto [,pkttype[,hattype[,地址] ]])
- connect(address)#
连接到 地址 .
在 20.6.0 版本发生变更: 如果地址的主机部分包含IPv6作用域ID,则将使用它而不是忽略它(如果平台提供)
socket.inet_pton()
.
- connect_ex(address)#
连接到 address ,返回结果代码。
在 23.7.0 版本发生变更: 不再使用被重写的
connect
此对象上的方法。相反,与标准库一样,此方法始终使用不可替换的内部连接函数。
- detach() file descriptor [源代码]#
关闭套接字对象而不关闭底层文件描述符。此调用后不能使用该对象;当关闭实际的文件描述符时,以前在此处使用的数字可能会被重用。此调用之后,fileno()方法将返回无效的套接字id。
返回上一个描述符。
在 1.5 版本发生变更: 同时立即删除任何本机事件循环资源。
- fileno() integer #
返回套接字的整数文件描述符。
- getblocking()#
返回套接字是否近似于阻塞行为。
在 1.3a2 版本加入: 在python 3.7中添加。
- getpeername() address info #
返回远程终结点的地址。对于IP套接字,地址信息是一对(主机地址、端口)。
- getsockname() address info #
返回本地终结点的地址。格式取决于地址系列。对于IPv4套接字,地址信息是一对(主机地址、端口)。对于IPv6套接字,地址信息是一个4元组(主机地址、端口、流信息、范围id)。
- getsockopt(level, option[, buffersize]) value #
获取插座选项。有关级别和选项,请参阅Unix手册。如果给定了非零的Buffersize参数,则返回值为该长度的字符串;否则为整数。
- gettimeout() timeout #
返回与套接字操作关联的超时时间,单位为秒(浮点数)。超时为None表示套接字操作超时已禁用。
- listen([backlog])#
使服务器能够接受连接。如果指定了backlog,则它必须至少为0(如果它较低,则设置为0);它指定系统在拒绝新连接之前允许的未接受连接的数量。如果未指定,则选择默认的合理值。
- makefile(mode='r', buffering=None, *, encoding=None, errors=None, newline=None)[源代码]#
返回连接到套接字的I/O流
除了支持的唯一模式字符是“r”、“w”和“b”,参数与文件名后面的io.open()相同。语义也很相似。
- recv(buffersize[, flags]) data #
从套接字接收最大缓冲区大小的字节。有关可选标志参数,请参阅Unix手册。当没有数据可用时,挡路会一直使用,直到至少有一个字节可用,或者直到远程端关闭。当远端关闭并读取所有数据时,返回空字符串。
- recv_into(buffer[, nbytes[, flags]]) nbytes_read #
Recv()的一个版本,它将数据存储到缓冲区中,而不是创建新字符串。从套接字接收最大缓冲区大小的字节。如果未指定BufferSize(或0),则接收到给定缓冲区中可用的大小。
有关标志的文档,请参见recv()。
- recvfrom(buffersize[, flags]) -> (data, address info)#
如recv(Buffersize,flag),但也返回发送者的地址信息。
- recvfrom_into(buffer[, nbytes[, flags]]) -> (nbytes, address info)#
LIKE recv_into(缓冲区 [,n字节[,标志] ]),而且还返回发件人的地址信息。
- send(data[, flags]) count #
将数据字符串发送到套接字。有关可选标志参数,请参阅Unix手册。返回发送的字节数;如果网络繁忙,该值可能小于len(数据)。
- sendall(data[, flags])#
将数据字符串发送到套接字。有关可选标志参数,请参阅Unix手册。该函数重复调用send(),直到发送完所有数据。如果发生错误,就不可能知道已经发送了多少数据。
- sendfile(file[, offset[, count]]) sent [源代码]#
使用高性能OS.sendFile()发送一个文件,直到到达EOF,并返回发送的字节总数。 file 必须是以二进制模式打开的常规文件对象。如果os.send file()不可用(例如Windows),或者文件不是常规文件套接字,则将使用send()。 抵消 告诉从何处开始读取文件。如果指定, 计数 是要传输的总字节数,而不是在达到EOF之前发送文件。文件位置在返回时更新,或者在出现错误的情况下更新,在这种情况下,可以使用file.tell()计算发送的字节数。套接字必须是sock_流类型。不支持非阻塞套接字。
在 1.1rc4 版本加入: 在python 3.5中添加,但在gevent中的所有python3版本下都可用。
- sendto(data, [flags, ]address) count #
与SEND(数据、标志)类似,但允许指定目的地址。对于IP套接字,地址是一对(主机地址、端口)。
- setblocking(flag)#
将套接字设置为阻塞(标志为true)或非阻塞(False)。setblock(True)等效于settimeout(无);setblock(False)等效于settimeout(0.0)。
- setsockopt(level, option, value: int)#
- setsockopt(level, option, value: buffer) None
- setsockopt(level, option, None, optlen: int) None
设置插座选项。有关级别和选项,请参阅Unix手册。值参数可以是整数、字符串缓冲区,也可以是None、optlen。
- settimeout(timeout)#
设置套接字操作超时。“超时”可以是浮点型、以秒为单位的给定或无。将超时设置为NONE会禁用超时功能,相当于设置阻塞(1)。将超时设置为零与setblock(0)相同。
- shutdown(flag)#
关闭插座的读取端(FLAG==SHUT_RD)、插座的写入端(FLAG==SHUT_WR)或两端(FLAG==SHUT_RDWR)。
- property family#
对此套接字的地址族的只读访问权限。
- property proto#
套接字协议
- property type#
对套接字类型的只读访问权限。
- create_connection(address, timeout=None, source_address=None, *, all_errors=False) socket [源代码]#
连接到 地址 并返回
gevent.socket.socket
对象。方便功能。连接到 地址 (2元组)
(host, port)
)然后返回socket对象。通过选项 超时 参数将在尝试连接之前设置套接字实例的超时。如果没有 超时 如果提供,则返回全局默认超时设置getdefaulttimeout()
使用。如果 source_address 如果已设置,则必须是(主机、端口)的元组,以便在进行连接之前将套接字绑定为源地址。“”或端口0的主机通知操作系统使用默认值。在 20.6.0 版本发生变更: 如果地址的主机部分包含IPv6作用域ID,则将使用它而不是忽略它(如果平台提供)
socket.inet_pton()
.在 22.08.0 版本发生变更: 添加 all_errors 争论。这只在Python3.11+上有意义;在早期版本上传递它是一个编程错误。
在 23.7.0 版本发生变更: 可以将值传递给
all_errors
在任何版本的Python上。对于函数内部3.11之前的任何版本,它都被强制为FALSE。
- getaddrinfo(host, port, family=0, type=0, proto=0, flags=0)[源代码]#
将主机和端口解析为地址信息条目列表。
将主机/端口参数转换为5个元组的序列,其中包含创建连接到该服务的套接字所需的所有参数。主机是域名、IPv4/V6地址的字符串表示形式或无。端口是字符串服务名,如“http”、数字端口号或无。通过将none作为主机和端口的值传递,可以将空值传递给基础C API。
可以选择指定family、type和proto参数,以缩小返回的地址列表。将零作为每个参数的值传递,将选择完整的结果范围。
参见
- getfqdn(name='')[源代码]#
从名称中获取完全限定的域名。
空参数被解释为表示本地主机。
首先检查gethostbyaddr()返回的主机名,然后可能检查现有别名。如果没有可用的fqdn,则返回gethostname()中的hostname。
在 23.7.0 版本发生变更: IPv6通用地址‘::’现在返回以下结果
gethostname
,如IPv4地址‘0.0.0.0’。