Вы должны использовать его так:
with open("%d.jpg" % (i),'wb') as f:
while 1:
data = conn.recv(buf)
#print(data[:10])
#print "PACKAGE RECEIVED..."
f.write(data)
if not data: break
таким образом f автоматически закрывается, когда вы покидаете с блоком, когда вы выходите из , а .
Я думаю, вам нужно расширить протокол, чтобы получатель знал, что он получает, и что вы можете позволить ему действовать по этому поводу. Что-то вроде «начала переноса» ... отправка имени файла, отправка данных, отправка «окончание передачи», что делает приемник закрытием файла
Попробуйте:
select p1.name, p2.name from player p1
join team t1 on p1.id = t1.pilot_id
join player p2 on p2.id = t1.copilot_id;