Python中每秒的增量消息

我已经将头撞在墙上20分钟了,答案很简单,我似乎无法找出解决方法。

我有一个客户端和一个服务器,我希望客户端每秒向服务器发送10条消息。 现在这可以正常工作,但是增量却没有。 我要它去:

消息1,消息2,消息3 .....消息16,消息17

,依此类推,直到关闭连接。 但是它停在10,然后返回到消息1,消息2,依此类推。

我的代码:

def send_packages():
    print('Sending ' + packages_per_second + ' packages per second')
    while True:
        if int(packages_per_second) > int(max_packages_per_second):
            print('The server cannot  handle more than 25 packages per second')
            break
        elif int(packages_per_second) < 1:
            print('Please check config file and make sure the "max_packages" is larger than 0')
            break
        else:
            for i in range(int(packages_per_second)):
                message = 'Message #' + str(i)
                sock.sendto(message.encode('utf-8'),server_address)
        sleep(1)
senveny1234567 回答:Python中每秒的增量消息

您并没有限制邮件实际发送的速度;您只是在几批消息之间暂停一秒钟。为了准确地限制您的速率,您需要知道发送一条消息实际需要多长时间,然后知道足够长的时间,以便数字套餐加上各个睡眠时间总计一秒钟。为了简单起见(考虑到较低的打包率),让我们假设消息是即时发送的。然后你会想要一个像

的循环
from itertools import count

def send_packages():
    print(f"Sending {packages_per_second} packages per second")
    delay = 1 / packages_per_second
    for i in count():
        message = f'Message #{i}'
        sock.sendto(message.encode(),server_address)
        sleep(delay)

如果package_per_second为10,则每隔 条消息,您将睡眠0.1秒。

本文链接:https://www.f2er.com/3040998.html

大家都在问