gpt4 book ai didi

适合初学者的 Python 套接字/中断

转载 作者:行者123 更新时间:2023-11-30 23:33:39 24 4
gpt4 key购买 nike

我正在用我的 Raspberry Pi 构建一个网络音乐播放器,并且我正在尝试想出一个方案,该方案允许我向我的 Pi 发送一个“命令”,从而允许它通过网络执行各种操作(例如运输控制)。

这就是我对接收器的想法(以伪代码的形式):

while True:
while nothingIsRecvD:
do_stuff()
do_something_with(theDataRecvDfromSocket)

有一些适合初学者的基本代码可以看一下吗?

最佳答案

您需要使用the socket modulethe select module .

要设置套接字,您需要

  1. 使用socket.socket创建一个套接字。您可能需要使用 AF_INET 地址系列。对于TCP,使用SOCK_STREAM;对于 UDP,请使用 SOCK_DGRAM
  2. bind您要监听的接口(interface)和端口的套接字。
  3. 对于 TCP,请调用 listen在 socket 上。 5 是典型的积压值。

如果您使用 TCP,则您刚刚创建了一个监听套接字。为了实际接收数据,您需要使用 accept 接受连接。通过连接的套接字,您可以 recvsend数据。

UDP 类似,只是不需要接受,您将使用 recvfromsendto而不是recvsend .

但是,这些方法会阻塞,如果我理解正确的话,你不希望这样。 select.select让您等待给定一组套接字中的任何一个上发生事件。如果您只想检查是否有某些事件,您还可以提供零超时。一旦检测到事件,您通常可以执行一次适当的操作而不会阻塞。

使用完套接字后,请保持礼貌并 close他们之后shutting down任何已连接的套接字。

关于适合初学者的 Python 套接字/中断,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18669303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com