gpt4 book ai didi

python - 多个客户端的套接字编程

转载 作者:行者123 更新时间:2023-12-01 04:45:25 24 4
gpt4 key购买 nike

我正在尝试使用多个客户端的套接字为聊天服务器编写代码。但它仅适用于单个客户。为什么它不适用于多个客户端?

我必须使用 Beaglebone Black 执行此程序。我的服务器程序将在 beaglebone 上运行,普通客户端在 gcc 或终端上运行。所以我不能使用多线程。

    #SERVER                                                                      
import socket
import sys

s=socket.socket()
s.bind(("127.0.0.1",9998))
s.listen(10)

while True:
sc,address = s.accept()
print address
while True:
msg = sc.recv(1024)
if not msg:break


print "Client says:",msg
reply = raw_input("enter the msg::")
sc.send(reply)
sc.close()
s.close()

#CLIENT
import socket
import sys
s= socket.socket()
s.connect(("127.0.0.1",9998))

while (1):
msg = raw_input("enter the msg")
s.send(msg)
reply = s.recv(1024)
print "Server says::",reply
s.close()

最佳答案

使用事件循环。

像asyncio一样集成在python中:Echo server example

或者使用提供事件循环的外部库,如 libuv: Echo server example .

注意:您的代码无法同时为多个客户端工作,因为您在接收操作中被阻止,并且您没有处理新的接受操作。

关于python - 多个客户端的套接字编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29538063/

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