【发布时间】: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”但没有收到数据。
【问题讨论】: