В комментариях уже есть объяснение - у вас неправильные отступы.
Вы должны закрыть файл после выхода while
l oop
f = open(filename, 'rb')
l = f.read(buf)
while l:
client.sendto(l, ADDR)
print('Sending\n', repr(l))
l = f.read(buf)
# --- after loop ---
f.close()
print('Completed')
client.close()
И когда вы используете with
, тогда вам не нужно close()
, потому что with
будет закрыть
with open('recv.txt', 'wb') as f:
while True:
print('getting file...')
pdata, addr = server.recvfrom(buf)
print('data=', pdata)
if not pdata:
break
# write data to a file
f.write(pdata)
# --- after loop ---
#f.close() # no need it
print('Completed')
server.close()
print('Connection closed')