İPUCU

Python Artificial Intelligence’da en çok kullanılan dildir ve gerekli dökümanların paylaşım alanlar burada paylaşılmaktadır.

Seçenekler

Python Socket Programlama // Ar-Ge kulübü

aefrgn - ait Kullanıcı Resmi (Avatar)
Üye
Üyelik tarihi:
12/2017
Nereden:
Ötüken
Mesajlar:
153
Konular:
17
Teşekkür (Etti):
37
Teşekkür (Aldı):
444
Ticaret:
(0) %
05-07-2018 22:26
#1
Python Socket Programlama // Ar-Ge kulübü
Merhaba dostlar, bugün sizlere Python Socket Programlama hakkında bilgiler verip elimden geldiği kadar yardımcı olmaya çalışacağım.




Önce Socket Programlama nedir bundan bahsedeyim.

İki cihaz arasındaki iletişimi sağlamak için kullanılan bir yapı diyebilirim.IP ve Port etkileşimiyle kurulur ve iki cihaz arasında data paylaşımı,aktarımı yapmamıza olanak sağlar.

Şimdi Ne işimize yarayacağından bahsedeyim.

Kendi elektronik cihazlarınızdan bilgisayar,tablet vs ile uzaktaki herhangi bir elektronik cihazınızı kontrol etmenizi transfer yapmanızı saglar.FTP ve SSH uygulamalarıda socket temelli uygulamalardır.

Programlama aşamasından bahsedeyim.

Bağlantı gerçekleşecek iki cihazında belirgin bir IP almış olması lazım veya 'sunucu' olarak adlandırdığımız tarafın belirgin bir IP adresine sahip olması gerekir.Sunucu açık değilken bağlantı isteği gönderirseniz hata ile karşılaşırız.

Programlamaya başlayalım.

Önce kütüphanemizi projemize dahil etmemiz gerekiyor.
Kod:
import socket
Bağlantıyı tanımlamak için Ip port tanımlamamız gerekicek.Ben localhost umun ip sini yazıyorum siz değiştirebilirsiniz.
Kod:
host = "127.0.0.1"
port = 1234
buf = 1024
calistir = (host,port)
Buf ne diye soracak olursanız gelen-giden verilerin boyutudur.1Kb olarak tanımladım ben.Yapmak istediğiniz işleme göre değiştirebilirsiniz.

Sırada en önemli yer olan socketimizi tanımlamamız gerekicek.
Kod:
bagla = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
bagla.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
bagla.bind(calistir)
bagla.listen(2)
Socketimizi bagla değişkeni üzerine tanımladık.İki argüman kullandım.İlki AF_INET dir.kullanmamızın sebebi IPv4 yapısında bir IP kullanıyor olmamız.IPv6 kullananlar için IF_INET6'da kullanılabilir.

Şimdi gelen bağlantıyı kabul edelim.
Kod:
sunucu,adres = bagla.accept()
Ayrıca sunucumuzu tanımlayalım ve IP adresini aldık.

bagla.accept() fonksiyonunu çalıştırdığınız anda sunucunuz artık çalışmaya ve portu dinlemeye başlamıştır.
Veri gönderip alma işlemlerine geçelim.

Veri göndermek için send() fonksiyonu veri almak içinde recv() fonksiyonu kullanılır.
recv() fonksiyonunu kullanabilmek için bir veri boyutu girmelisiniz.Bunuda yukarıda tanımladığımız buf değişkeni ile tamamlayabiliriz.

Kod:
sunucu.send("Baglanti Basarili..")
veri = sunucu.recv(buf)
print veri
istemciden gelen veriyi data değişkenine aldık ayrıca print ile bu değişkeni ekrana yazdırdık.
Sunucu ve baglantıyı kapayalım.
Kod:
sunucu.close()
bagla.close()


---------------------
Bir Kurt görün bu gece rüyanız parçalansın!
siberdrone15 Teşekkür etti.

Bookmarks


« Önceki Konu | Sonraki Konu »
Seçenekler

Yetkileriniz
Sizin Yeni Konu Acma Yetkiniz var yok
You may not post replies
Sizin eklenti yükleme yetkiniz yok
You may not edit your posts

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodları Kapalı
Trackbacks are Kapalı
Pingbacks are Kapalı
Refbacks are Kapalı