【问题标题】:Python- Does select() will work with UDP functions(recvfrom() and sendto() )?Python- select() 是否可以与 UDP 函数(recvfrom() 和 sendto() )一起使用?
【发布时间】:2016-05-26 18:46:35
【问题描述】:

select 模块中的 select.select() 函数是否可以与 UDP 函数 - recvfrom()sendto() 一起使用? 我想让程序使用 select 函数,我知道它可以与 TCP 函数一起使用 - send 和 recv 但我想构建使用 select 函数的 UDP 服务器。

那么,select 函数是否可以与 UDP 函数 recvfromsendto 一起使用?

【问题讨论】:

  • Select 确实适用于 UDP,如果这就是您所要求的。
  • @user_ABCD 是的,基本上我要问的是 select 是否会将所有执行 sendto() 的客户端放入 rlist 中,并在 wlist 中放入所有执行 recvfrom() 的客户端,就像在 TCP 函数上一样发送和接收

标签: python sockets select udp


【解决方案1】:

是的,Python 的 select() 函数适用于 UDP 和 TCP 套接字。为了解决您对 user_ABCD 的评论中的后续问题,使用 UDP 套接字,select() 返回与使用 TCP 套接字相同的信息。

来自documentation

返回值是准备好的对象列表的三元组: 前三个参数的子集。达到超时时 没有准备好文件描述符,三个空列表是 返回。

如果您将包含 UDP 套接字的参数传递给 select(),则这些套接字将包含在返回列表中,前提是它们实际上已准备好被读取或写入。

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 2016-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多