【问题标题】:Blink LED while waiting for TCP connection等待 TCP 连接时闪烁 LED
【发布时间】:2020-10-26 10:06:43
【问题描述】:

当我的 Raspberry Pi TCP 服务器等待建立连接时,我想闪烁 LED。传输打开后,LED应保持亮起。

此时我的服务器如下所示:

connectioStatus = False
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
s.bind((host, port))
s.listen()
While True: 
    try:
        led_connection_indicator(connectioStatus)
        clientSocket, address = s.accept()
        connectioStatus = True
        while True:
        measure and send data
    except ConnectionResetError:
        handle error
        connectioStatus = False

led_connection_indicator 函数看起来像这样:

def led_indicator(status):
if status is True:
    GPIO.output(Led, GPIO.HIGH)
else:
    while status is False:
        GPIO.output(Led, GPIO.HIGH)
        sleep(1)
        GPIO.output(Led, GPIO.LOW)
        sleep(1)
        if connectionStatus is True: break

当然,这根本不起作用,程序卡在while循环中。起初我认为将 GPIO.HIGH 和 GPIO.LOW 放在主 While 服务器循环中可以解决这个问题,但程序在 s 处停止。接受 ()。

这是线程的工作吗?我尝试使用信号,但没有运气

我在 Qt 中为服务器编写了一个简单的 TCP 客户端。奇怪的是,当我从客户端连接到服务器后,Qt 中的套接字状态返回“QAbstractSocket:: ConnectedState”但没有收到数据。

【问题讨论】:

    标签: python tcp


    【解决方案1】:

    socket.accept 被阻塞。您可能希望使用 select.select() 来指定超时。

    【讨论】:

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