Nis 172015
4.523 views
Python ile Socket Programlama 2
Bugün TCP protokolüyle soket bağlantısı kurmayı inceliyoruz.
UDP ile bağlantı yapıldığında istemci ile sunucu arasında bir bağlantı kurma gereği yoktu. Yayınlar rastgele yapılıyor, sunucu dinliyorsa, gönderilen paketleri yakalayabiliyordu. Datagram adı verilen bu paketlerin yerine ulaşma garantisi yoktu, çünkü denetlenmiyorlardı.
Oysa TCP tipi bağlantılarda istemci ve sunucu arasında karşılıklı bir etkileşim ve iletişim bulunur. Bilgi akışı denetim altındadır. Arada paket kaybı yaşanmaz.
[youtube https://www.youtube.com/watch?v=Eqb69XKucTM&w=560&h=315]
TCP sunucu
#!/usr/bin/python
# -*- encoding: utf-8 -*-
#ax-tcp-sunucu.py
from socket import *
import threading
bind_ip = "0.0.0.0"
bind_port = 9999
sunucu = socket(AF_INET, SOCK_STREAM)
sunucu.bind((bind_ip, bind_port))
sunucu.listen(5)
print ("[*] Dinliyor : %s:%d" % (bind_ip, bind_port))
def handle_istemci(istemci_soket):
request = istemci_soket.recv(2048)
print ("[*] %s alındı" % request)
istemci_soket.send("ACK!")
istemci_soket.close()
while True:
istemci, adres = sunucu.accept()
print ("[*] %s:%d bağlantısı kabul edildi." % (adres[0], adres[1]))
istemci_handler = threading.Thread (target=handle_istemci,args=(istemci,))
istemci_handler.start()
TCP istemci
#!/usr/bin/python # -*- encoding: utf-8 -*- #ax-tcp-sunucu.py from socket import * hedef_sunucu = "localhost" hedef_port = 9999 istemci = socket(AF_INET,SOCK_STREAM) istemci.connect((hedef_sunucu, hedef_port)) istemci.send("GET / HTTP/1.1rnHost: google.com.trrnrn") response = istemci.recv(4096) print (response)
Sorularınızı yorum alanından bana iletebilirsiniz.
Beni izlemeye devam edin.
ahmet aksoy
dış bağlantı almak için port açmak gerekiyor sanırım.
[…] Python ile Socket Programlama 2 […]