Я пытаюсь создать сервер и клиент, который отправляет файл с клиента на сервер, и сервер сохраняет его на жесткий диск, тогда сервер запрашивает другой файл, и если ответ клиента - да, тогда клиент отправляет второй файл, а затем сервер снова сохраняет его, и если клиентский ответ отсутствует, сервер закрывает сокет, когда я запускаю этот код, первый файл отправляется
и получил успешно, но после этого сервер и клиент зависли и ничего не происходит, что с ним не так и как я могу это исправить?
код моего сервера:
import socket
host = 'localhost'
port = 4444
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host, port))
s.listen(5)
(client, (ip, port))=s.accept()
while True:
data = "".join(iter(lambda: client.recv(1), "\n"))
with open('filehere.txt', 'w') as file:
for item in data:
file.write("%s" % item)
if not data: break
client.send("is there any other file?")
d = client.recv(2048)
if d == "yes":
while True:
data = "".join(iter(lambda: client.recv(1), "\n")
with open('filehere1.txt', 'w') as file:
for item in data:
file.write("%s" % item)
if not data: break
s.close()
else:
s.close()
код моего клиента:
import socket
host = 'locahost'
port = 4444
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host, port))
f = open('myfile.txt', 'rb')
l = f.read()
while True:
for line in l:
s.send(line)
break
f.close()
d = s.recv(2048)
a = raw_input(d)
if a == "yes":
s.send("yes")
f = open('myfile1', 'rb')
l = f.read()
while True:
for line in l:
s.send(line)
break
f.close()
else:
s.close