【发布时间】:2022-08-19 02:53:21
【问题描述】:
我正在为我和我的朋友开发一个小消息应用程序,但我的客户只收到一个对象,这里有点难以解释......
服务器:
#server
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 5034))
s.listen(5)
while True:
clt,adr=s.accept()
clt.send(bytes(\"hello\", \"utf-8\"))
客户:
#client
import socket
s=socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((\"192.168.56.1\", 5034))
msg=s.recv(1024)
print(msg.decode())
现在我怎样才能做到这一点,以便我可以不断更改正在发送的消息?
-
好吧,如果您想向客户端发送多条消息,那么您需要使您的
while循环更加复杂。您可以发送任意数量的数据,但是当您再次调用accept时,第一个套接字将被关闭。您还需要在客户端中循环s.recv调用以接收多条消息。 -
@TimRoberts 你所说的“复杂”到底是什么意思?您能否发送我的代码的编辑版本?
-
当您致电
clt.send(bytes(\"hello\", \"utf-8\"))时,它会发送您好。如果您希望它发送其他内容,那么您必须编写您希望它发送的内容而不是“hello”,例如一些变量或函数调用。你知道基本的 Python 编程吗?