Мой сервер отправляет серию файлов с такими именами, как file_1, file_2 и так далее.Сокет отправки работает хорошо, и я проверил эти файлы все правильно.
Сервер - отправка файлов
f = open(new_filename, 'rb')
start_ts = ts
seconds += 1
try:
print('Sending %s' % new_filename)
conn.sendall(f.read(99999999))
f.flush()
f.close()
except socket.error:
if errno == errno.ECONNREFUSED:
print(os.strerror(socket.error.errno))
else:
raise
print('Send failed')
sys.exit()
Здесь, на стороне клиента, я хочу получить эти файлы и сохранить их так, как это было на сервере (save_1, save_2, ...) на моем компьютере.
Клиент - получить файлы и попытаться сохранить их
try:
client.send(b'Receiving Data...\n')
while True:
save_filename = 'savefolder/save_%i.pcap' % file_index
f = open(save_filename, 'wb')
data = client.recv(99999999)
f.write(data)
reply = b'Message Received.\n'
if not data:
break
client.sendall(reply)
f.close()
file_index += 1
except socket.timeout:
print('Done receiving.', end=' ')
client.close()
print('Client socket is closed')
- Но сохраненные файлы выглядят странно,Когда сервер отправляет один файл размером 3755 КБ, клиент записывает два файла размером 192 КБ и 3,563 КБ.Хуже, чем больше сбой.можно ли это исправить?Я не знаю, почему это происходит здесь с моим кодом.
- Это единственный способ ввести значение 99999999, чтобы получить весь файл без обрезки?
- Почему мой клиент не отправляет сообщениесервер, хотя я написал там какой-то код?