我怎样才能让数据每隔一定的时间无限地通过套接字发送?

2024-03-29 10:10:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用套接字将数据从客户端发送到服务器。我的问题是,它只发送一次,永远不会再发送,我需要它每2分钟循环发送一次

port = 8000
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s = socket.socket()
s.connect(("",port))

print('Puerto en', ip)

while True:
    ph=phsensor()
    start_counter = 1
    sleep (1)
    start_counter = 0
    caudal = (count * 60 * 2.25 / 1000)
    print("El caudal es: %.3f L/min" % (caudal))
    count = 0
    sleep (5)
    if caudal < 1:
        print("No esta llegando suficiente agua")
        led1.value(1)
    else:
        led1.value(0)
    if caudal > 2:
        print("El agua esta circulando bien")
    data=';'.join([str(caudal),str(ph)]).encode('utf-8')
    s.send(data)
    dataFromServer = s.recv(1024)

1条回答
网友
1楼 · 发布于 2024-03-29 10:10:39

好吧,让我给你一些建议:

  • 首先:当您使用套接字或其他I/O外围设备时,永远不要休眠正在运行I/O操作的线程,因为这样会阻塞外围设备,并且会带来一些性能问题。让我共享一个link来使用python中的Thread.sleep

  • 第二:您共享的代码表明您的程序是单线程的,并且您正在使用sleep,这打破了第一点。我建议您使用线程,这里您有一个link来了解如何使用它们

  • 第三:尝试创建一个始终运行的主线程,不管它是否在等待信号,比如按键或其他事件。第二个线程的任务是检查调用send方法的时间

这些是我的建议,我希望你能解决你的问题或家庭作业

相关问题 更多 >