nons上的套接字操作

2024-09-26 22:53:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我有以下课程:

from socket import *
import select

class UdpListenerPort:
    def __init__(self, socket):
        self.socket = socket
        self.socket.setblocking(0)

    def get_data_to_dispatch(self):
        is_ready = select.select([self.socket],[],[],0.01)
        if is_ready[0]:
            return self.socket.recvfrom(0xffff)[0]
        else:
            return None

从线程中运行。当我退出线程时,我得到以下异常:

^{pr2}$

我怎样才能避免这种执行

谢谢

巴里


Tags: fromimportselfreturninitisdefsocket
1条回答
网友
1楼 · 发布于 2024-09-26 22:53:37

我发现了问题。我把线程实现为一个上下文管理器。在退出方法中,我有以下内容:

def __exit__(self, type, value, traceback):
    try:
        self.is_alive = False
        while not self.is_finished:
            time.sleep(0.1)
    except:
        self.is_finished = True

从而优雅地退出线程。但是,我忘了输入时间。。。:)

相关问题 更多 >

    热门问题