• 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

Özgür Yazılım Kış Kampı- Soketler

Saniye Nur Çintimur Saniye Nur Çintimur
06/02/2020
Okuma Zamanı: 4 dk.
235 3
0
Share on FacebookShare on Twitter

Linux Sistem Programlamada kullanacağımız soketler nedir ne işe yarar ?

İLGİLİ İÇERİKLER

Bir Teknoloji Şirketi Yapay Zeka Teknolojisini Kullanarak Metaverse için Sanal İnsanlar Yaratıyor

Facebook, Gelecekte Bütün Sosyal Ağlarını Tek Çatıda Toplayacak

Tesla’nın Asıl Rakibi Belli Oldu: Haftanın Öne Çıkan Otomobil Haber Özetleri

Önce uygulama katmanındaki ağ uygulamaları birbirleriyle nasıl haberleşirler ona bakalım.Birbiriyle haberleşen sistemlere aslında uygulamaların haberleşmesi değil proseslerin haberleşmesi diyoruz.

Proses ise işlem diyebiliriz kısaca fakat şöyle desek daha dogru olur :  Herhangi bir uç sistemde çalışan programların her biri bir prosestir,bir işlemdir.

Mesela benim bilgisayarımda iki işlem birbiriyle haberleşecekse buna işlemler arası haberleşme(inter process) deniyor, bu yöntemle haberleşiyorlar.

(Bu haberleşme yöntemi işletim sistemi tarafından tasarlanmıştır.)

Farklı son sistemlerdeki farklı hostlardaki prosesler birbirleriyle haberleşecekse bunlar birbirleriyle mesaj alışverişi yaparlar.Üretilen mesajları  ağ üzerinde taşırlar.

Prosesleri gruplandıracak olursak ,

  • Client prosess
  • Server prosess

Haberleşmeyi başlatan proseslere istemci prosesleri diyoruz.

Kendisiyle iletim kurulmasını bekleyen proseslere server proses sunucu proses diyoruz.

Prosesler birbirleriyle haberleşiyorlar ama mesajları iletme işiyle ilgilenmiyorlar.Mesaj iletme işiyle bir alt katmandaki transport katmanı ilgileniyor.Bu mesajları iletim transport katmanına vermeleri lazım peki nerden  verirler bu katmana mesajları , soket dediğimiz yazılımlar üzerinden verirler.Yani soketleri bir kapı olarak düşünebiliriz.Uygulalama katmanı ile transport katmanı arasındaki bir kapıdır bu soket.

(soketi arayüz olarakda düşünebiliriz. Bu arayüze de API deniyor. )

Ağ uygulamalarının oluşturuldugu programlama arayüzü=soket

(Bu soketler üzerinden dogru uygulamaya dogru mesajların gittiğini sağlarız .)

Soket kullanımı içinde uygulama adresi tek başına yeterli değildir, Ağda her uygulamanın bir numarası vardır ve bu numaraya port numarası denir.

Örneğin ben belirli bir yerdeki web sunucusuna http mesajı gönderecem, bunun için hem IP adresini hem port numarasını göndermem gerekir.

Portlara genel olarak iana.org dan bakabilirsiniz.

Nedir IANA ==> Internet Assigned Numbers Authority ==> İnternette atanan numaraların otoritesi gibi çevrilebilir.

Bütün port numaralarının hangi servislere ait olduguna dair bir liste tutar.

struct sockaddr : Bu veri yapıs pek çok türde soket için soket adres bilgisini barındırır.
sa_family pek çok de erden birini alabilir. Ama bu anlatımda sadece AF_INET (ARPA Internet protocols)
kullanılacaktır.
AF_UNIX (UNIX internal protocols)
AF_INET (ARPA Internet protocols)
AF_ISO (ISO protocols)
AF_NS (Xerox Network Systems protocols)
AF_IMPLINK (IMP “host at IMP” link layer)
sa_data ise soketle ilgili hedef adres ve port numaras bilgilerini barındırır.
struct sockaddr ile başa çıkabilmek için buna paralel bir yapı olarak struct sockaddr_in tasarlanmıştır.

 

 

 

Şimdi bir örnek üzerinden başlayalım :

(önce bir udp sunucu yazıyoruz.)

 

# ! /usr/bin/python                    // linux üzerinde yazdım kodu bu kısım  python programına erişim adresi

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

#ax-udp-sunucu.py

from socket import *    //socket modülünün içindeki bütün fonksiyonları import et .

sunucuAd= ‘hostname’

// burada anlaşılsın diye böyle yazdım böyle bir sunucu adı olmaz .bunun yerine  ‘localhsost ’ , yada ‘127.0.0.0’ yada boş bırakın farketmez.

sunucuPort=12345

sunucuSocket=socket(AF_INET , SOCK_DGRAM)  // nesneyi açtık burada AF_INET internet bağlantısı

sunucuSocket.bind((sunucuAd, sunucuPort )) // şimdi bir bağlantı kuruyoruz bind ile

print (‘Sunucu veri almaya hazırdır. ’)

while 1 :

mesaj, istemciAdres=sunucuSocket.recvfrom(4096)  // 4096 buffer boyutu, yani karşıdan alınacak bilgi miktarını  belirten rakam

if mesaj == ‘axson’ : // iletişim kesmek için kullanacagız. Sunucuyu durdurmak için

break

yeniMesaj=mesaj.upper()   // büyük harfe dönüştür

sunucuSocket.sendto(yeniMesaj,istemciAdres)

sunucuSocket.close() // döngü dışına çıktıgımızda sunucuyu kapat mesajı

print(‘Sunucu kapandı. ’)

 

Şimdi udp istemci yazıyoruz :

#!/usr/bin/python

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

#ax-udp-istemci.py

from socket import *

sunucuAd = ‘localhost’

sunucuPort = 12345

istemciSocket = socket(AF_INET, SOCK_DGRAM) #datagram   // istemci soketini tanıma

mesaj = raw_input(‘Küçük harfle bir cümle yaz:’)

istemciSocket.sendto(mesaj, (sunucuAd, sunucuPort))

yeniMesaj, sunucuAdres = istemciSocket.recvfrom(4096)

print (yeniMesaj)  // burada mesaj sunucuya ulaştıysa bize büyük harf dönmesi lazım

 

Termianalde çalıştırdıgınızda aşagıdaki gibi hatalar alabilirsiniz sorun yok arayüzde çalıştırmaya çalışın, yani direk dosyadan açık hata gidecektir :

Direk buradan çalıştırın :

İstemciyi çalıştır :

(Arayüzdende çalışabildiğini görmeniz için bunu pycharmdan çalıştırdım.)

Gördüğünüz üzere sunucu ve istemciyi haberleştirdik.İstediğimiz cevabıda aldık.

Şimdi son olarak axson yazalım, yazdıgımız koda göre sunucuyu durdurmalı bu ifade :

 

Yanda açık olan sunucu kapandı .

 

 

Bu yazımızda udp server ve istemci tanımladık , haberleştirdik.Bir sonraki yazımızda tcp server ve istemci haberleştireceğiz. Beklemede kalın ..

 

 

 

Python ile Socket Programlama 1

Soket Programlama(Socket Programming)

iana.org

 

 

İç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

Bir Teknoloji Şirketi Yapay Zeka Teknolojisini Kullanarak Metaverse için Sanal İnsanlar Yaratıyor

Bir Teknoloji Şirketi Yapay Zeka Teknolojisini Kullanarak Metaverse için Sanal İnsanlar Yaratıyor

31/10/2021
2.6k
Facebook, Gelecekte Bütün Sosyal Ağlarını Tek Çatıda Toplayacak

Facebook, Gelecekte Bütün Sosyal Ağlarını Tek Çatıda Toplayacak

01/10/2021
2.4k
Tesla’nın Asıl Rakibi Belli Oldu: Haftanın Öne Çıkan Otomobil Haber Özetleri

Tesla’nın Asıl Rakibi Belli Oldu: Haftanın Öne Çıkan Otomobil Haber Özetleri

18/09/2021
2.3k
Sadece Devletler’e Satışı Olan “Pegasus Casus Yazılımı” Nedir? Kimleri Hedef Alıyor?

Sadece Devletler’e Satışı Olan “Pegasus Casus Yazılımı” Nedir? Kimleri Hedef Alıyor?

22/07/2021
5.2k
Tartışmaya katılmak için lütfenGiriş Yapın

Trend.

Güvenliğiniz İçin Kırılması Zor Şifre Önerileri

Güvenliğiniz İçin Kırılması Zor Şifre Önerileri

07/02/2021
379.2k

Bir Elektrik ve Elektronik Mühendisi Adayının Öğrenirse Kendine Katkı Sunacağı 10 Program

22/01/2021
102.1k

BTK Siber Güvenlik Uzmanlığı Sertifika Programı Online Sınav Soru ve Cevapları

15/11/2019
41.3k

Mühendisin Köşesi.

Elektrik Elektronik Mühendisi Nedir?

03/08/2020
5.1k
VERMEDEN SÜRDÜRÜLEBİLİR Mİ TARIM ? ALMADAN SÜRER Mİ ÇİFTÇİ ?

VERMEDEN SÜRDÜRÜLEBİLİR Mİ TARIM ? ALMADAN SÜRER Mİ ÇİFTÇİ ?

27/06/2021
3k
NASA’dan öğrencilere açık davet: “Gelin bizi hackleyin”

NASA’dan öğrencilere açık davet: “Gelin bizi hackleyin”

29/11/2020
2.7k
  • Gizlilik Politikası
  • Hakkımızda
  • Yazarlar
  • Yazarımız Ol
  • Sosyal Medya Sponsorluğu ve Partnerlik Programı
  • İ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 ve Partnerlik Programı
  • 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. .