nbNet_simple.py 文件源码

python
阅读 28 收藏 0 点赞 0 评论 0

项目:Starfish 作者: BillWang139967 项目源码 文件源码
def write(self, fd):
        '''????????
        '''
        # ??socket
        sock_state = self.conn_state[fd]
        conn = sock_state.sock_obj
        # ????????????
        last_have_send = sock_state.have_write
        try:
            # ?????? conn.send ????????? 
            have_send = conn.send(sock_state.buff_write[last_have_send:])
            # ?????????
            sock_state.have_write += have_send
            # ???????????
            sock_state.need_write -= have_send
            # ??????????????? ???????????
            if sock_state.need_write == 0 and sock_state.have_write != 0:
                # ????????????,????????????
                self.setFd(conn)
                self.conn_state[fd].state = "read"
                self.epoll_sock.modify(fd, select.EPOLLIN)
        except socket.error, msg:
            # ?send???????socket?????epoll?????????????
            # ???????????[Errno 11] Resource temporarily unavailable
            # ???????epoll??????,?????epoll????
            if msg.errno == 11:
                return
            sock_state.state = "closing"
            self.state_machine(fd)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号