Nis 172015
 
4.523 views

Python ile Socket Programlama 2

Bugün TCP protokolüyle soket bağlantısı kurmayı inceliyoruz.

Python ile Socket Programlama 2

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

  2 Yanıt - “Python ile Socket Programlama 2”

  1. dış bağlantı almak için port açmak gerekiyor sanırım.

  2. […] Python ile Socket Programlama 2 […]

 Bir yanıt bırakın

Bu HTML tagleri ve özellikleri kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(gerekli)

(gerekli)

This site uses Akismet to reduce spam. Learn how your comment data is processed.