gevent._socket3 --python 3插座模块#

Python 3插槽模块。

SocketType#

socket 的别名

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 版本发生变更: 同时立即删除任何本机事件循环资源。

dup() socket object[源代码]#

返回连接到同一系统资源的新套接字对象。

fileno() integer#

返回套接字的整数文件描述符。

get_inheritable()[源代码]#

获取套接字的可继承标志

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套接字,地址是一对(主机地址、端口)。

set_inheritable(inheritable)[源代码]#

设置套接字的可继承标志

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。

fromfd(fd, family, type[, proto]) socket object[源代码]#

从给定文件描述符的副本创建套接字对象。其余参数与socket()相同。

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’。

gethostbyaddr(ip_address)[源代码]#

返回主机的真实主机名、别名列表和IP地址列表。主机参数是一个提供主机名或IP号的字符串。

gethostbyname(host) address[源代码]#

返回主机的IP地址(格式为“255.255.255.255”的字符串)。

gethostbyname_ex(host)[源代码]#

返回主机的真实主机名、别名列表和IP地址列表。主机参数是一个提供主机名或IP号的字符串。将主机和端口解析为地址信息条目列表。

getnameinfo(sockaddr, flags)[源代码]#

获取sockaddr的主机和端口。

socketpair([family[, type[, proto]]]) -> (socket object, socket object)[源代码]#

从平台socket pair()函数返回的套接字创建一对socket对象。参数与socket()相同,但如果在平台上定义,则默认的系列是af_Unix;否则,默认的系列是af_inet。

在 1.2 版本发生变更: Windows上的所有python 3版本都提供此函数(由python 3.5及更高版本本机提供)。