socket不停地发送一个文本,在一个循环中,我希望它只发送一次

A text is sent by socket non-stop, in a loop, I wanted it to be sent only once

我写了一个代码,只发送一个预先建立的文本。我明白了,但是文本不断地、不停地发送,我希望它只发送一次。请问我该怎么做?

服务器

from socket import *
host = gethostname()
port = 8889

print(f'HOST: {host} , PORT {port}')
serv = socket(AF_INET, SOCK_STREAM)
serv.bind((host, port))
serv.listen(5)
while 1:
    con, adr = serv.accept()
    while 1:
        msg = con.recv(1024)
        print(msg.decode())

客户

from socket import *
host = gethostname()
port = 8889
cli = socket(AF_INET, SOCK_STREAM)
cli.connect((host, port))
while 1:
    msg = ("hi")
    cli.send(msg.encode())

The result does not stop printing the hi

while 1: 表示:永远循环。 客户端会一直循环发送消息,客户端不需要while 1:.

您可能还想从第 9 行的服务器中删除 while 1:,因为服务器永远不会在第 11 行退出以下循环。

如果您希望 while 循环停止循环,您可以检查某物的状态,您可以将 1 替换为布尔运算符(true/1 或 false/0 ).这里有一些 Python boolean operators