У меня есть простая программа сокетов для передачи файлов, где один сокет отправляет данные файла, а другой сокет получает данные и записывает их в файл
Мне нужно отправить подтверждение , как только передача будет завершена от адресата до источника
Код для пункта назначения
s.accept()
f = s.makefile()
f.read(1024)
Код для источника
s.connect(('localhost',6090))
f = s.makefile()
f.write('abcd')
f.flush()
Здесь возникает проблема, так как "abcd" не 1024 байта, назначение будет блокироваться до получения 1024 байтов
Решение было бы закрыть() сокет, но так как мне нужно подтверждение от адресата, я не могу закрыть сокет.
Как сообщить целевому пункту прекратить блокировку? Я подумывал написать символ EOF
Я читал онлайн, что "\ x04" - это EOF, но он не работает.
Также, поскольку данные могут быть двоичными, я не хочу использовать метод readline().