Soket nedir?
- C kursu
- İleri seviye
- Ders 25/83
- 5 dk
Soket kavramını ve ağ iletişimindeki rolünü öğrenirsin.
Soket nedir?
Soket, süreçler arası veya ağ üzerinden iletişim sağlayan bir üç noktasıdır. POSIX'te soketler de dosya tanıtıcısıdır; read ve write ile çalışırlar.
İki temel türü vardır: SOCK_STREAM (TCP, güvenilir bağlantı) ve SOCK_DGRAM (UDP, bağlantısız veri bloğu). Soketler <sys/socket.h> başlığında tanımlanır. Sunucu socket, bind, listen ve accept adımlarını izler; istemci socket ve connect kullanır.
Soket adresleri
Her soket bir adrese bağlıdır. AF_UNIX yerel dosya yolu, AF_INET ise IPv4 ağı kullanır. Adres yapısı sırasıyla struct sockaddr_un ve struct sockaddr_in'dir.
Bu derste AF_UNIX kullanacağız; ağ bağımlılığı yoktur ve aynı makinede hızlıdır. Soket fonksiyonları adres yapısını struct sockaddr * olarak alır; bu yüzden cast yapman gerekir. memset ile adres yapısını sıfırlamak iyi bir alışkanlıktır.
Uygulama Soket türlerini yazdır
printf ile iki soket türünü her satıra bir tane yazdır: printf("SOCK_STREAM\n"); ve printf("SOCK_DGRAM\n");.
Başlangıç kodu
#include <stdio.h>
#include <sys/socket.h>
// SOCK_STREAM yazdır
// SOCK_DGRAM yazdır
int main(void) {
return 0;
}Örnek çözüm
#include <stdio.h>
#include <sys/socket.h>
int main(void) {
printf("SOCK_STREAM\n");
printf("SOCK_DGRAM\n");
return 0;
}Beklenen çıktı
SOCK_STREAM SOCK_DGRAM
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 SOCK_STREAM hangi protokole karşılık gelir?
- TCP Doğru cevap
- UDP
- ICMP
- ARP
Açıklama: SOCK_STREAM, TCP'nin güvenilir bağlantısına karşılık gelir.
2 Soket türü
int fd = socket(AF_UNIX, ____, 0);
int fd = socket(AF_UNIX, SOCK_STREAM, 0);
Açıklama: SOCK_STREAM güvenilir bağlantı sağlar.
3 Soket türlerini eşle
| Kavram | Anlamı |
|---|---|
SOCK_STREAM |
TCP güvenilir |
SOCK_DGRAM |
UDP bağlantısız |
AF_UNIX |
Yerel soket |
AF_INET |
IPv4 ağı |