首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python内置异常类型全面汇总

内置异常基类 在 Python 中,所有异常必须为一个派生自 BaseException 的类的实例。 通过子类化创建的两个不相关异常类永远是不等效的,既使它们具有相同的名称。...BlockingIOError 操作将阻塞对象设置为非阻塞操作 | +-- ChildProcessError 子进程上的操作失败 | +-- ConnectionError 与连接相关的异常的基类...| | +-- BrokenPipeError 在已关闭写入的套接上写入 | | +-- ConnectionAbortedError 连接尝试被对等方中止 | | +-...- ConnectionRefusedError 连接尝试被对等方拒绝 | | +-- ConnectionResetError 连接对等重置 | +-- FileExistsError...-- NotImplementedError 尚未实现的方法 | +-- RecursionError 解释器检测到超出最大递归深度 +-- SyntaxError Python

1.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

linux网络编程之socket(八):五种IO模型和select函数简介

2、非阻塞I/O 我们可以使用 fcntl(fd, F_SETFL, flag | O_NONBLOCK); 将套接标志变成非阻塞,调用recv,如果设备暂时没有数据可读就返回-1,同时置errno为...对等连接的写一半关闭。...即接收到FIN段,读操作将返回0 如果是监听套接口,已完成连接队列不为空时。 套接口上发生了一个错误待处理,错误可以通过getsockopt指定SO_ERROR选项来获取。...参数3:写集合,关心可写事件; 套接口发送缓冲区有空间容纳数据。(连接一旦建立就可写) 对等连接的读一半关闭。即收到RST段之后,再次调用write操作。...注意当select阻塞返回后,此时调用accept 接收连接是不会阻塞的,直接返回已连接套接,可以认为是select 提前阻塞了。

1.8K00

socket的五大误区

隐患 2.对等套接闭包 UNIX 有趣的一面是您几乎可以把任何东西看成是一个文件。文件本身、目录、管道、设备套接都被当作文件。这是新颖的抽象,意味着一整套的 API 可以用在广泛的设备类型上。...如果在一个套接上完成一个 read 操作并得到一个为 0 的返回值,这表明远程套接端的对等层调用了 close API 方法。...隐患 3.地址使用错误(EADDRINUSE) 您可以使用 bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接端点。可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。...左边的对等层完成两个套接的写操作,每个 100 字节。协议栈的 UDP 层追踪写的数量,并确保当右边的接收者通过套接获取数据时,它以同样数量的字节到达。换句话说,为读者保留了写者提供的消息边界。...使用 netstat,可以查看当前活动的连接(按单个协议进行查看),查看特定状态的连接(比如处于监听状态的服务器套接)和许多其他的信息。

80820

Py异常处理

本文对Python异常处理进行讲解。 Python内置异常 Python的异常处理能力是很强大的,它有很多内置异常,可向用户准确反馈出错信息。在Python中,异常也是对象,可对它进行操作。...没有属性) | ±- UnboundLocalError # 访问未初始化的本地变量 ±- OSError # 操作系统错误,EnvironmentError,IOError,WindowsError,socket.error...| | ±- BrokenPipeError # 另一端关闭时尝试写入管道或试图在已关闭写入的套接上写入 | | ±- ConnectionAbortedError # 连接尝试被对等方中止 | |...±- ConnectionRefusedError # 连接尝试被对等方拒绝 | | ±- ConnectionResetError # 连接对等重置 | ±- FileExistsError #...此外,与python异常相关的关键主要有: ?

1.5K30

socket rst_socket通信编程

client此时还是可以write 给server的,write调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server收到数据后应答一个RST段,表示服务器已经不能接收数据,连接重置...54/* Connection reset by peer */ 当一个进程向某个已收到RST的套接执行读操作时,(此时读操作返回ECONNRESET错误) 抓包信息如下: 上述情况会引发一个问题...如果对端TCP发送一个FIN(对端进程终止),那么该套接变为可读,并且read返回0; 2....如果对端TCP发送一个RST(对端主机崩溃并重新启动),那么该套接变为可读,并且read返回-1,而errno中含有确切的错误码; 这个问题在select详解中讲述 情况三: 修改客户端程序如下,服务端不变...; 运行服务端,再运行客户端程序,客户端打印连接成功,if语句开头会休眠20秒,(服务端程序里面,接收一个连接以后就close套接然后立马退出程序了)在这期间内再次打开服务端,等待客户端的读取数据的分节到达

1.7K30

硬核干货:6000 30张图,带你彻底搞懂BGP动态路由!

AS 101与AS 103建立了BGP对等体AS 103与AS 104建立了BGP对等体BGP 允许每个对等点从其相邻对等点收集路由信息,然后进一步完整地通告该信息。...假设位于中国的设备想要连接到位于俄罗斯的设备,中国端的设备订阅了网络自治号为101的 ISP 的服务,俄罗斯端的设备订阅了网络自治号为 104 的 ISP 的服务。...所以从中国端设备到俄罗斯端设备有两条路径:图片线路一:中国 -> AS 101 -> AS 102 -> AS 104 -> 俄罗斯线路二:中国 -> AS 101 -> AS 103 -> AS 104...如果成功,连接重置计时器将由已建立的 BGP 会话进程重置,并向邻居发送一个 OPEN 消息,并将进入 OpenSent 状态。如果失败,状态将继续到 Active 状态。...如果连接重置计时器归零并且 Connect 阶段尚未完成,则连接重置计时器将被重置并且 BGP 将尝试新的三次 TCP 握手。

1.5K61

linux网络编程之socket(十):shutdown 与 close 函数 的区别

client此时还是可以write 给server的,write调用只负责把数据交给TCP发送缓冲区就可以成功返回了,所以不会出错,而server收到数据后应答一个RST段,表示服务器已经不能接收数据,连接重置...EOF字符(即发送了一个FIN段),而不管其他进程是否已经打开了这个套接。...也就是说只有当所有进程(可能fork多个子进程都打开了这个套接)都关闭了这个套接,close 才会发送FIN 段。...所以说,如果是调用shutdown how = 1 ,则意味着往一个已经发送出FIN的套接中写是允许的,接收到FIN段仅代表对方不再发送数据,但对方还是可以读取数据的,可以让对方可以继续读取缓冲区剩余的数据...再次发BBBBB直接产生SIGPIPE信号,默认会终止进程,但因为我们已经设置了忽略SIGPIPE信号,所以服务器端进程不会被终止,但客户端也会出错,因为回到while循环开头,select阻塞等待时发现套接的读端已经关闭

2.9K00

linux网络编程之socket(十三):epoll 系列函数简介、与select、poll 的区别

listenfd 加入关心的套接序列。...当监听套接有可读事件,accept 返回的conn也需要使用epoll_ctl 函数将其加入关心的套接队列。...当下次循环回来某个已连接套接有可读事件,则读取数据,若read 返回0表示对方关闭,需要使用epoll_ctl 函数将conn 从队列中清除,我们使用 std::vector clients...,而此时客户端虽然已经创建了第1020个sock,但在connect 过程中发现对等方已经退出了,故打印错误提示,连接对等重置。...4、当已连接套接字数量不太大,并且这些套接都非常活跃,那么对于epoll 来说一直在调用callback 函数(epoll 内部的实现更复杂,更复杂的代码逻辑),可能性能没有poll 和 select

1.9K00

使用WebRTC开发Android Messenger:第2部分

不幸的是,事实证明,此bug无法通过WebRTC访问,因为它需要客户端套接连接到侦听套接,而在WebRTC中,两个套接都是客户端套接。 我一直在寻找,最终找到了CVE-2020-6514。...结果是在每个SCTP连接期间,此对象在内存中的位置将发送到远程对等方。...重置序列号需要完全等于初始化连接时设置的序列号(在INIT或COOKIE_ECHO块中),还需要等于SctpTransport指针的低位四个字节。...ASLR布局是在Android设备启动时确定的,并且在重新启动之前不会再次更改。所以我需要一种方法在重置序列号被设置之后改变累积的TSN。...事实证明,使用FWD_TSN块类型是可行的,该类型允许一个对等方请求另一个对等方将其累积的TSN最多向前移动4096节。通过重复发送此块类型,可以将累积的TSN向前移动足够多的位,以使第31位翻转。

1.5K43

网络编程 - Linux Socket编程

流式套接(SOCK_STREAM)   流式的套接可以提供可靠的、面向连接的通讯流。如果你通过流式套接发送了顺序的数据:"1"、"2"。那么数据到达远程时候的顺序也是"1"、"2"。...面向连接的Socket工作流程 数据报套接(SOCK_DGRAM)   数据报套接定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠,无差错。...(Inet需要传入IP、端口;Unix 需要传入路径) connect()函数 —— 连接指定服务器套接。 listen()函数 —— 服务器监听连接上的套接客户端。...accept()函数 —— 接受远程客户端套接,会获取到远程连接客户端的地址信息。(阻塞接口) send()函数/recv()函数 —— 连接的流式套接进行通讯的函数。...sendto()函数/recvfrom()函数 —— 非连接的数据报套接进行通讯的函数。 close()函数 —— 关闭套接描述符所表示的连接

9.7K50

muduo网络库学习之EventLoop(三):Socket、Acceptor、TcpServer、TcpConnection(连接建立,接收消息)

if (errno == EMFILE)         {             ::close(idleFd_);             idleFd_ = ::accept(acceptSocket...simba@ubuntu:~$  从输出可以看出,acceptSocket_.sockfd_ = 6,客户端连接上来,监听套接发生可读事件,调用accept() 接收连接后调用用户回调函数newConnection...listenAddr)),在构造函数体内: // Acceptor::handleRead函数中会回调用TcpServer::newConnection // _1对应的是socket文件描述符,_2对应的是对等方的地址...20131108 09:38:56.901306Z  7557 TRACE poll  nothing happended - EPollPoller.cc:74 可以看到,fd = 6 是监听套接...,fd = 8是返回来的已连接套接,那么fd = 7去哪了呢?

1.2K00

【重识云原生】第四章云网络4.3.7.3节——BGP协议实现原理

Idle状态是BGP初始状态,在Idle状态下,BGP拒绝邻居发送的连接请求。只有在收到本设备的Start事件后,BGP才开始尝试和其它BGP对等体进行TCP连接,并转至Connect状态。...说明:Start事件是由一个操作者配置一个BGP过程,或者重置一个已经存在的过程或者路由器软件重置BGP过程引起的。...如果TCP连接成功,那么BGP向对等体发送Open报文,并转至OpenSent状态; 如果TCP连接失败,那么BGP转至Active状态; 如果连接重传定时器超时,BGP仍没有收到BGP对等体的响应,那么...如果TCP连接成功,那么BGP向对等体发送Open报文,关闭连接重传定时器,并转至OpenSent状态; 如果TCP连接失败,那么BGP停留在Active状态; 如果连接重传定时器超时,BGP仍没有收到...BGP 设备对等体建立邻居关系后,采取以下交互原则: 从 IBGP 对等体获得的 BGP 路由, BGP 设备只发布给它的 EBGP 对等体。

76230

Kali Linux 网络扫描秘籍 第四章 指纹识别(一)

4.2 Python 套接特征抓取 Python套接字模块可以用于连接运行在远程端口上的网络服务。...操作步骤 使用 Python 交互式解释器,我们可以直接与远程网络设备交互。你可以通过 直接调用 Python 解释器来直接和它交互。这里,你可以导入任何打算使用的特定模块。这里我们导入套接字模块。...bangrab套接连接 Metasploitable2 远程主机172.16.36.135的 21 端口。连接后,recv函数可以用于从套接连接的服务接收内容。..._sock,name)(*args) socket.error: [Errno 111] Connection refused >>> exit() 如果我们尝试连接 Metasploitable2...执行过程中,这个脚本会使用 Python 套接连接所有远程系统的范围内的端口值。并且会收集和打印所有识别出的服务特征。

1.5K30

BGP篇

BGP对等体关系建立 先启动BGP的一端先发起TCP连接,R1先启动BGP,R1使用随机端口号向R2的179端口发起TCP连接,完成TCP连接的建立。...BGP建立对等体的对等体都会发起TCP三次握手,所以会建立两个TCP连接,但是实际BGP只会保留其中一个TCP连接,从Open报文中获取对端BGP Identifier之后BGP对等体会比较本端的Router...2、路由刷新特性 Route refresh capability 对4节AS号的支持能力 Support for 4-octet AS number capability Open建立邻居前提 邻居地址的可达性...reset bgp all 直接断开所有TCP连接 清空所有BGP路由 重新建立邻居 BGP状态机 idel (空闲) 配置完BGP对等体之后,设备会尝试建立TCP连接,此时如果无法发起TCP...连接设备将会一直处于Idle状态。

37910

TCP连接的状态详解以及故障排查

Server对应的函数接口: 当Server端调用socket函数调用时,相当于Server端产生了一个处于Closed状态的监听套接 Server端调用bind操作,将监听套接与指定的地址和端口关联...,然后又调用listen函数,系统会为其分配未完成队列和完成队列,此时的监听套接可以接受Client的连接,监听套接状态处于LISTEN状态。...当Server端调用accept操作时,会从完成队列中取出一个已经完成的client连接,同时在server这段会产生一个会话套接,用于和client端套接的通信,这个会话套接的状态是ESTABLISH...client端的套接处于TIME_WAIT状态,它会向server端再发送一个ack确认,此时server端收到ack确认后,此套接处于CLOSED状态。...errno 给出该值可能由于,通过 getsockopt 系统调用来获得一个套接的当前选项状态时,如果发现了系统不支持的选项参数就会引发该错误。

2.5K20
领券