AnDeveloper Merhaba,
önce dosyayı göndermeyi başaralım o vakit;
şöyle deneyiniz:
Server.py
import socket # soket kütüphanesini ekliyoruz
port = 60000 # portumuzu ayarlıyoruz
s = socket.socket() # soket nesnesini oluşturuyoruz
host = socket.gethostname() # çalışan makinen adını alıyoruz
s.bind((host, port)) # host ile portu ilişkilendiriyoruz
s.listen(5) # şimdi ise istemci bekliyoruz yani client. Şu an dinleme modunda.
print 'Sunucu dinlemede....'
while True:
conn, addr = s.accept() # İstemci bağlantı isteklerini kabul ediyoruz.
print 'Bu client bağlandı: ', addr /// burada istemci bağlanıyor
data = conn.recv(1024) ///veri alınıyor
print('Sunucu işlemde: ', repr(data)) /// alınma bilgisi yazdırılıyor.
filename='text.txt' ///dosyanız.
f = open(filename,'rb') ///dosya işlemleri ile okunuyor.
l = f.read(1024) ///dosya işlemleri ile okunuyor.
while (l):
conn.send(l) //ilgili bağlantıdan gönderiliyor.
print('Sent ',repr(l)) ///durum bilgisi
l = f.read(1024) ///okunuyor tekrardan
f.close() ///dosya kapatılıyor.
print('Gönderim tamamlandı') /// gönderim tamamlandı
conn.send('Teşekkürler cnm.') ////bağlantı teşekkür yoluyor.
conn.close() /// bağlantıyı kapatıyoruz.
Client.py
import socket //yine aynı olaylar anlatmama gerek yok.
s = socket.socket()
host = socket.gethostname()
port = 60000
s.connect((host, port)) /// sunucuya bağlanıyor.
s.send("slm server!") ///sunucuya selam veriyor.
with open('received_file', 'wb') as f: ///dosyayı alıyor.
print 'file opened'
while True:
print('receiving data...')
data = s.recv(1024)
print('data=%s', (data))
if not data:
break
# write data to a file
f.write(data)
f.close()
print('dosya başarılı şekilde alındı')
s.close()
print('bağlantı kapatıldı!')
Ben yorum satırı olarak /// kullandım fakat python'da bildiğin üzere # olarak yorum satırı oluyor onu düzenlersin.
Tek tek mantığını anlattım. Bu kod üzerinde çalışıp işin mantığını kavraman gerek. Henüz daha client-server mantığı oturmamış sende gibi. Bu yüzden bu kaynak olmak üzere özellikle Google üzerinden videolar izleyerek pekiştir.