找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 619|回复: 0

[求助] 小白学习通过UDP读取数据编程运用IO多路复用(select)问题

0

主题

0

帖子

0

积分

贫民

积分
0
TangIRin 发表于 2022-8-6 10:56:29 | 显示全部楼层 |阅读模式
本帖最后由 TangIRin 于 2022-8-6 10:57 编辑

运行代码过程中出现报错
Exception in thread c**ole:
Traceback (most recent call last):
  File "E:\Program Files (x86)\Python310\lib\threading.py", line 1016, in _bootstrap_inner
    self.run()
  File "E:\F1\MyF1Tool\threading_utils.py", line 65, in run
    for (key, events) in selector.select():
  File "E:\Program Files (x86)\Python310\lib\selectors.py", line 324, in select
    r, w, _ = self._select(self._readers, self._writers, [], timeout)
  File "E:\Program Files (x86)\Python310\lib\selectors.py", line 315, in _select
    r, w, x = select.select(r, w, w, timeout)
OSError: [WinError 10038] 在一个非套接字上尝试了一个操作。



代码是从网上参考的,部分代码如下:

def run(self):
    """Wait until stdin has input.
    The run method executes in its own thread.
    """
selector = selectors.DefaultSelector()
    key_socketpair = selector.register(
        self._socketpair[0], selectors.EVENT_READ
    )
    key_stdin = selector.register(sys.stdin, selectors.EVENT_READ)

    logging.info("C**ole wait thread started.")

    # assert print("threading_u:", key_socketpair)
    # assert print("threading_u:",selector.select())

    quitflag = None
    while not quitflag:
        for (key, events) in selector.select():
            if key == key_socketpair:
                quitflag = True
            elif key == key_stdin:
                quitflag = True

    self._quit_barrier.proceed()

    logging.info("C**ole wait thread stopped.")



想请教下问题出在哪,如何解决?




回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表