Tweet

Socket Programing

..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

İlgili Olabilecek Makaleler


Yorumlar (0)




Ziyaretçi olarak yorum yazamazsınız. Üye olmak için tıklayın Üye iseniz giriş yapın.



MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg