Sobes.tech
Junior

Socket nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bir soket (socket), süreçler arasında ağ etkileşimi için bir API'dir. TCP ve UDP gibi ağ protokolleriyle çalışma soyutlaması sağlar ve programların ağ üzerinden veri göndermesine ve almasına olanak tanır.

Bilgi alışverşi için bir uç noktayı temsil eder. Örneğin, bir web sunucusu, tarayıcılardan gelen istekleri kabul edebilir ve bir istemci uygulaması, verileri sunucuya gönderebilir.

Soketler iki ana türe ayrılabilir:

  • Akış soketleri (Stream sockets, SOCK_STREAM): TCP protokolünü kullanır, güvenilir ve sıralı veri teslimi sağlar. HTTP veya FTP gibi teslim garantisi gerektiren uygulamalara uygundur.
  • Datagram soketleri (Datagram sockets, SOCK_DGRAM): UDP protokolünü kullanır, paketlerin teslimatı ve sırasını garanti etmez. Hızın önemli olduğu durumlarda, örneğin çevrimiçi oyunlar veya akış video uygulamalarında kullanılır.

Ağ uygulamasında soketlerle çalışma aşamaları (TCP örneği):

  1. Soket oluşturma: socket() çağrısı ile bir soket tanımlayıcısı alınır.
  2. Bağlama (Bind): Soket, belirli bir IP adresi ve porta bağlanır (sunucu soketi için).
  3. Dinleme (Listen): Sunucu soketini gelen bağlantıları dinleyecek şekilde ayarla.
  4. Kabul etme (Accept): Gelen bağlantıyı kabul eder ve bu bağlantı için yeni bir soket oluşturur.
  5. Bağlantı kurma (Connect): İstemci, IP ve port kullanarak sunucuya bağlanır.
  6. Gönderme/Alma (Send/Receive): Bağlantı üzerinden veri alışverişi yapılır.
  7. Kapatma (Close): İşlem tamamlandıktan sonra soket kapatılır.

Python'da TCP soketi oluşturma örneği:

import socket

# TCP/IP soketi oluşturma
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# Ek işlemler: bind(), listen(), accept() sunucu için
# veya connect() istemci için, send(), recv(), close()