• Oturum aç
Tech News, Magazine & Review WordPress Theme 2017
  • Haberler
  • Kategoriler
    • Bilim
    • Teknoloji
    • Girişimcilik
    • Kripto Para
    • Oyun
    • Yazılım
    • Otomotiv
    • Kültür Sanat
    • Tasarım
    • Savunma Sanayi
    • Siber Güvenlik
  • Etkinlikler
  • Mühendislikler
  • Mühendisin Köşesi
Sonuç yok
Tüm Sonuçları Görüntüle
MühendisBilir
Sonuç yok
Tüm Sonuçları Görüntüle

Soketler – TCP İstemci Sunucu

Saniye Nur Çintimur Saniye Nur Çintimur
10/02/2020
Okuma Zamanı: 3 dk.
144 6
0
Share on FacebookShare on Twitter

Bir önceki yazımızda datagramlarla çalışmıştık.UDP ile, datagramlarda bağımsız paketlerle çalışıyordu.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.

İLGİLİ İÇERİKLER

Google, Duyma Yetisini Artıracak Cihaz Geliştiriyor

Daha Az Savurgan Lazer Kesim

‘Süper Bilgisayar’a Göre ‘Çift Maske’ Sanılan Kadar Koruma Sağlamıyor

 

Şimdi de Tcp server ve client yazalım.

Önce istemci tanımlayalım :

#!/usr/bin/python

# -*- encoding: utf-8 -*-

#ax-tcp-sunucu.py

from socket import * // soket fonksiyonlarını import ettik

hedef_sunucu = “www.google.com.tr”   //hedef sunucumuzu google.com.tr olarak tanımladık.

hedef_port = 80   // 80 yazmamızın sebebi 80 http port no oldugu için

istemci = socket(AF_INET,SOCK_STREAM)   //burada tcp de oldugumuz için sock_stream tanımladık.çünkü süreklilik söz konusu

istemci.connect((hedef_sunucu, hedef_port))  // burada bağlantı kuruyoruz.

istemci.send(“GET / HTTP/1.1rnHost: google.com.trrnrn“)   // burada sunucuya bir bilgi gönderiyoruz.

response = istemci.recv(4096)   // burada 4096 bytelık biğr buffer a bilgi çekiyoruz print ile de ekrana bastırıyoruz.

print (response)

 

Fakat eğer yerel sunucu atayacak isek google değil aşagıdaki komutları kullanıyoruz

#!/usr/bin/python

# -*- encoding: utf-8 -*-

#ax-tcp-sunucu.py

from socket import * // soket fonksiyonlarını import ettik

hedef_sunucu = “localhost”

hedef_port = 9999

istemci = socket(AF_INET,SOCK_STREAM)   //burada tcp de oldugumuz için sock_stream tanımladık.çünkü süreklilik söz konusu

istemci.connect((hedef_sunucu, hedef_port))  // burada bağlantı kuruyoruz.

istemci.send(“GET / HTTP/1.1rnHost: google.com.tr /r/n/r/n“)   // burada sunucuya bir bilgi gönderiyoruz.

response = istemci.recv(4096)   // burada 4096 bytelık biğr buffer a bilgi çekiyoruz print ile de ekrana bastırıyoruz.

print (response)

 

Şimdi istemciyi çalıştırıyoruz.

Portu 9980 ile değiştir bakalım sonuç alacaz mı , (alamıyoruz ekran kaydı koy buraya)

 

Her zaman karşımızda hazır mı sunucu olmayabilir. Bazen kendi sunucumuza ihtiyaç duyabiliriz.

Şimdi kendi sunucumuzu yazalım :

#!/usr/bin/python

# -*- encoding: utf-8 -*-

#ax-tcp-sunucu.py

from socket import *

import threading   // sunucuda farklı olarak threading paketini kullanıyoruz.Eş zamanlı olarak birkaç işlemi birden yapmak istediğimiz zaman kullandıgımız bir özellik.

 

bind_ip = “0.0.0.0”

bind_port = 9999

sunucu = socket(AF_INET, SOCK_STREAM)

sunucu.bind((bind_ip, bind_port))   //bağlantımızı yaptık

sunucu.listen(5)  // 5 ayrı kanaldan dinleme yapmasını söyledik.

print (“[*] Dinliyor : %s:%d” % (bind_ip, bind_port))

 

def handle_istemci(istemci_soket):

request = istemci_soket.recv(2048)  //2048 bytelık bir buffer açarak karşı tarafı dinliyoruz.

print (“[*] %s alındı” % request)  // bilgiyi ekrana yazıyoruz

istemci_soket.send(“ACK!”)  // buradaki ACK işlevi ise bilgiyi aldıgımızı karşı tarafa bildirmek.

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,)) // çoklu dinleme yapmamız için gerekli kısım burası. hadle_istemci  fonksiyonunu çağırıyoruz.argüman olarakta istemci değişkeni.

istemci_handler.start()  //bu çoklu dinleme işleminide burada başlatmış oluyoruz.

Önce sunucu sonra istemci çalıştır.

Gördüğünüz gibi dinleme mesajını verdi.

Şimdi istemciyi çalıştıralım :

 

Bağlantımızı kabul etti ve ACK onay mesajınıda solda görüyorsunuz.

 

TCP ile de bağlantı kurmuş olduk.

Gördüğünüz üzere TCP protokolü kullanarak hem istemci hem sunucu oluşturduk.Gayet kolay.İstediğiniz gibi kodlarla oynayıp değişik şeylerde yapabilirsiniz.Biz Elimizden geldiğince kolay anlatmaya çalıştık.Komplex yapılar oluşturmak sizin elinizde … İyi çalışmalar.

 

 

Python ile Socket Programlama 2

İçeriklerden ilk siz haberdar olmak ister misiniz?

Abonlikten Çık
Saniye Nur Çintimur

Saniye Nur Çintimur

Adli Bilişim Mühendisi ,Siber Güvenlik Araştırmacısı, Offensive Security ilgili https://www.hackthebox.eu/home/users/profile/240523 https://tryhackme.com/p/sny @HackTheBox @PriviaHub @TryHackMe @CTFPlayer

İlişkili Gönderiler

google-duyma-yetisini-artiracak-cihaz-gelistiriyor

Google, Duyma Yetisini Artıracak Cihaz Geliştiriyor

05/03/2021
1.5k
Daha Az Savurgan Lazer Kesim

Daha Az Savurgan Lazer Kesim

05/03/2021
1.5k
super-bilgisayara-gore-cift-maske-sanilan-kadar-koruma-saglamiyor

‘Süper Bilgisayar’a Göre ‘Çift Maske’ Sanılan Kadar Koruma Sağlamıyor

05/03/2021
1.5k
Evindeki Laboratuvarda Geliştirdiği 3D Biyoyazıcı Hastalıklara Umut Olacak

Evindeki Laboratuvarda Geliştirdiği 3D Biyoyazıcı Hastalıklara Umut Olacak

04/03/2021
1.5k
Tartışmaya katılmak için lütfenGiriş Yapın

Trend.

Mevcut İçerik Yok

Mühendisin Köşesi.

Gıda Mühendisliği Nedir ve İş İmkanları Nelerdir?

19/07/2020
1.5k
Uzay Mühendisliği Bölümü Nedir?

Uzay Mühendisliği Bölümü Nedir?

10/11/2020
1.5k
Çevre Mühendisliği Bölümü Nedir?

Çevre Mühendisliği Bölümü Nedir?

10/11/2020
1.5k
  • Gizlilik Politikası
  • Hakkımızda
  • Yazarlar
  • Yazarımız Ol
  • Sosyal Medya Sponsorluğu
  • İletişim

© 2021 Muhendis Bilir - Powered by

Sonuç yok
Tüm Sonuçları Görüntüle
  • Haberler
  • Etkinlikler
  • Mühendislikler
  • Mühendisin Köşesi
  • Kategoriler
    • Bilim
    • Girişimcilik
    • Kültür Sanat
    • Otomotiv
    • Savunma Sanayi
    • Siber Güvenlik
    • Tasarım
    • Teknoloji
  • Sosyal Medya Sponsorluğu
  • Yazarımız Ol
  • Oturum aç

© 2021 Muhendis Bilir - Powered by

Tekrar hoşgeldiniz!

Google ile giriş yap
Veya

Hesaba giriş yap

Şifremi unuttum

Yeni hesap oluştur

Sign Up with Google
Veya

Kayıt olmak için formu doldurun

Tüm Alanlar Zorunludur Oturum aç

Şifrenizi Geri Alın

Şifreyi sıfırlamak için ayrıntı girin

Oturum aç

Yeni Oynatma Listesi Ekle

Veri politikasındaki amaçlarla sınırlı ve mevzuata uygun şekilde çerez konumlandırmaktayız. Detaylar için Gizlilik Politika'mızı inceleyebilirsiniz. .