..Socket programlamayı Python dili üzerinden inceleyeceğiz bu yazımızda.Socketleri kullanarak network programlamaya ilk adımı atmış olacağız.
Herzamanki gibi socketleri en güzel ifade edebilmenin yolu bir server client bağıntısı kurmaktır.Python dili socket modülü sağlamaktadır. socket.socket().[...]
Bu socket modülü çeşitli protokolleri desteklemektedir.TCP ve UDP protokolleri üzerine network alt yapısı hazırlanabilir.Genelde TCP kullanılır biz UDP ile bir örnek yapalım.
Şİmdi yazımıza geçelim..
CODE:
from socket import *
Programımız iki taraflı olduğu için yani bir client ve server tarafına sahip
olacağı için öncelikle client programımızı yazalım..
Socketin başlatılabilmesi için ihtiyacı olan parametreleri tanımlayalım;
CODE:
hosts = "localhost"
port = 21567
buf = 1024
addr = (host,port)
Şimdi bu parametreleri açıklayalım..
host tanımında programın çalışacağı ağ tanımlanır.Local'de çalıştıracağımız içim
localhost yazdık..
port tanımında ise socketlerin iletişim kuracağı port numarasıdır..
buf tanımı ise veri akışının maksimum boyutunu ifade eder.İhtiyaçlarınıza göre
farklı değerler verebilirsiniz..
addr tanımı ise mesaj gönderirken kullanılan bir bağlantı noktasıdır..
Şimdi socketi oluşturmaya başlayabiliriz..
CODE:
UDPSock = socket(AF_INET, SOCK_DGRAM)
Şimdi sendTo kullanarak bir mesaj gönderelim..
CODE:
msg = "thecoders.net"
UDPSock.sendto(data,addr)
Client programını bu aşamaya kadar getirdik.Şimdi Server kısmına geçelim..
Yine tanımlamalarımızı yapıyoruz..
CODE:
host = "localhost"
port = 21567
buf = 1024
addr = (host,port)
Yeni bir socket yaratalım
CODE:
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)
Gönderilen mesajları alalım.. recvfrom() methodu ile
CODE:
data,addr = UDPSock.recvfrom(buf)
ve gelen mesajı print fonksyionu ile yazdıralım..
CODE:
print data
Client ve Server programlarının temelini oluşturan kodlar bu şekilde..
Genel olarak kodlarımızı verelim..
Client
CODE:
#Client program
from socket import *
# Socket Parametrelerini belirleyelim
host = "localhost"
port = 21567
buf = 1024
addr = (host,port)
# Socket Oluşturalım
UDPSock = socket(AF_INET,SOCK_DGRAM)
def_msg = "===Server'a mesaj göndermek için Enter'a basın===";
print "n",def_msg
# Mesaj Gönderme
while (1):
data = raw_input('>> ')
if not data:
break
else:
if(UDPSock.sendto(data,addr)):
print "Mesaj Gönderiliyor '",data,"'....."
# Socketi Kapatıyoruz
UDPSock.close()
Server Program
CODE:
#Server program
from socket import *
# Socket Parametrelerini belirliyoruz
host = "localhost"
port = 21567
buf = 1024
addr = (host,port)
# İletişimi sağlayacak olan addr için socket oluşturalım
UDPSock = socket(AF_INET,SOCK_DGRAM)
UDPSock.bind(addr)
# Gelen Mesaj
while 1:
data,addr = UDPSock.recvfrom(buf)
if not data:
print "Client Çıktı!"
break
else:
print "nGelen Mesaj '", data,"'"
# Socketi Kapatıyoruz
UDPSock.close()
İyi çalışmalar..
Oguzz
oguz@thecoders.net
4 Ocak 2008 14:24