gpt4 book ai didi

Python 套接字发送第一条消息但之后什么都不发送

转载 作者:太空宇宙 更新时间:2023-11-04 04:29:33 25 4
gpt4 key购买 nike

我的套接字发送了第一条消息,但之后什么都没有。
服务器中的输出:

你要发送什么?

哈哈

客户端收到:

从本地主机得到消息:

哈哈

然后它不想发送任何其他内容。我不再打印 what do you want to send

我的代码:

server.py 文件:

#!/usr/bin/python3
import socket

# create a socket object
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# get local machine name
host = socket.gethostname()
print ("got host name:", host)

port = 9996
print("connecting on port:", port)

# bind to the port
serversocket.bind((host, port))
print("binding host and port")

# queue up to 5 requests
serversocket.listen(5)
print("Waiting for connection")

while True:
clientsocket, addr = serversocket.accept()
msg = input("what do you want to send?\n")
clientsocket.send(msg.encode('ascii'))

client.py 文件:

#!/usr/bin/python3
import socket # create a socket object

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # get local machine

# name
host = socket.gethostname()
port = 9996 # connection to hostname on the port.

s.connect((host, port)) # Receive no more than 1024 bytes

while True:
msg = s.recv(1024)
print(msg.decode("ascii"))

最佳答案

客户端只连接一次(正常),但服务器在每次 while 循环开始时等待传入连接。

由于客户端不再有连接请求,服务器将在第二次迭代时卡住。

如果您只想处理单个客户端,请将 clientsocket, addr = serversocket.accept() 移到 while 循环之前。如果要处理多个客户端,标准方法是让服务器在 while 循环和 spawn a thread for each client 内接受连接。 .

您还可以使用 coroutines ,但如果您刚刚开始,这可能有点矫枉过正。

关于Python 套接字发送第一条消息但之后什么都不发送,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52923915/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com