Python Socket Modülü ve Basit Kullanımı

Python Socket Modülü ve Basit Kullanımı

Merhabalar,
Bugün elimden geldiğince basit şekilde sizelere socket kullanımından bahsedeceğim.

Örnek bir soket nesnesi için gerekli olan parametreler aşağıdaki gibidir.
s=socket.socket(socket_family, socket_type, protocol=0)

– Soket ailesi bilgileri 2 ye ayrılmaktadır.

socket_family =>1+ AF_UNIX #UNIX ile aynı hostta veri aktarımı için (linux)
2+ AF_INET #INET internet üzerinden veri aktarımı için (genel)

– Protokol standartta 0 olarak kullanılabilir.
protocol => 0 (default)

– Soket tipi 2 ye ayrılmaktadır.
socket_type => 1+ SOCK_STREAM #TCP veri aktarımı için
2+ SOCK_DGRAM #UDP veri aktarımı için

SOCKET METHODLARI VE AÇIKLAMALARI

s.bind() => Bu yöntem adresi (ana bilgisayar adı, bağlantı noktası numarası çiftini) sokete bağlar.

s.listen() => Bu yöntem verilen ayarda TCP portu dinlemeye başlar.

s.accept() => Bu yöntem bağlantı gelince gelen pasif kabul edilen bağlantıyı dahi kabul eder ve bağlantı gelinceye kadar sürekli bekler.

s.connect() => Bu yöntem aktif olan TCP bağlantısını başlatır.

s.recv() => Bu yöntem TCP mesajı alır.

s.send() => BU yöntem TCP mesajını iletir.

s.recvfrom() => Bu yöntem UDP mesajını alır.

s.sendto() => Bu yöntem UDP mesajını iletir.

s.close() => Bu yöntem soketi kapatır.

socket.gethostname() => Bu yöntem Ana bilgisayar adını gösterir/döndürür.

BASİT BİR SERVER YAZALIM


#!/usr/bin/python # server.py dosyamızı oluşturalım

import socket # soket modülümüzü Import ederek çağırıyoruz.

s = socket.socket() # Yeni bir soket objesi oluşturalım.
host = socket.gethostname() # Lokal cihazımızın ismini çağıralım.
port = 12345 # Kullanacağımız portu belirtiyoruz.
s.bind((host, port)) # bind metodu ile host ve portu bildiriyoruz.

s.listen(5) # Şimdi client üzerinden gelecek bağlantıyı beklemeye hazırız.

while True:
c, addr = s.accept() # Gelen bağlantı isteklerini kabul eden metodumuzu çağırıyoruz.
print ‘Got connection from’, addr # Gelen bağlantı host adını ekrana yazıyoruz.
c.send(‘Thank you for connecting’) # Client üzerine mesajımızı gönderiyoruz.
c.close() # En son bağlantımızı kapatıyoruz.

BASİT BİR CLİENT YAZALIM

#!/usr/bin/python # client.py dosyamızı oluşturalım.

import socket # soket modülümüzü Import ederek çağırıyoruz.

s = socket.socket() # Yeni bir soket objesi oluşturalım.
host = socket.gethostname() # Lokal cihazımızın ismini çağıralım.
port = 12345 # Kullanacağımız portu belirtiyoruz.

s.connect((host, port)) # Bağlantı isteğimizi gönderiyoruz.
print s.recv(1024) # Server gelen mesajını ekrana yazıyoruz.
s.close() # En son bağlantımızı kapatıyoruz.

Client ve Server Python dosyalarımızı oluşturduktan sonra artık test zamanı. Önce server.py dosyamızı terminalde çağırarak açıyoruz ve çalıştırıyoruz.
Sonrasında client.py dosyaızı açıyoruz ve gelen isteğin çıktısını aşağıdaki gibi görmemiz gerekiyor. Sonuç başarılı ise işlem tamamdır. Herşeyi doğru olarak yaptınız demektir.
En basitinden bir socket ile neler yapılabileceğinden bahsettik. Sonrasında yapacaklarınız hayal gücünüze kalmış.
Kolay gelsin