我想在我的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连接指示灯功能如下所示:
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”,但没有收到任何数据
socket.accept正在阻塞。您可能想使用select.select()来指定超时
相关问题 更多 >
编程相关推荐