如何解决如何在从服务器请求的两个以上线程之间进行管理?
服务器端:
def data():
data2=""
with open('group9.json') as file:
readed_Data=json.load(file)
for data in readed_Data['data']:
data_send+=data
return data2
def connected(sock,id):
print("Thread starts",id)
name= sock_a.recv(1024).decode('utf-8')
API=requests.get("https://api.agify.io/?name="+name)
response=API.text
data=json.loads(response)
#To save the new info
with open("temporary_file.json","w") as file:
json.dump(data,file,indent=4)
while True:
#recieve number from client
number = sock_a.recv(1024).decode('utf-8')
data_send=""
if(number=="1"):
data_send=data()
else:
data_send="not=1"
sock.sendall(data_send.encode('utf-8'))
#TCP SOCKET
with socket.socket(socket.AF_INET,socket.SOCK_STREAM) as sock_p:
sock_p.bind(("127.0.0.1",49999))
#sock_p.settimeout(15)
sock_p.listen(3)
threads=[]
while True:
sock_a,sockname = sock_p.accept()
print("connected to ",sockname[0],sockname[1])
t = threading.Thread(target=connected,args=(sock_a,len(threads)+1))
threads.append(t)
print(threads)
t.start()
这是服务器端的代码线程有什么解决办法
客户端:
with socket.socket(socket.AF_INET,socket.SOCK_STREAM) as sock_p:
sock_p.connect(("127.0.0.1",49999))
while True:
print("enter the name")
name=input()
sock_p.sendall(name.encode('utf-8'))
print("enter the number")
number=input()
sock_p.sendall(number.encode('utf-8'))
data=sock_p.recv(1024)
print(data)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。