• Discord sunucumuz için buraya, youtube kanalımız için buraya tıklayınız.
  • Hide eklentisi aktiftir, konu açarken araç çubuğunun en sağından kullanınız. Ayrıca gizli içeriği açmak için random vs. saçma mesajlar atmayınız.

C/C++ Socket Programlama

Folleder

Elite Member
Elit
Katılım
25 Eki 2019
Mesajlar
46
Reaksiyon puanı
14
Puanları
8
  • Soket oluşturma:int sockfd = soket (etki alanı, tür, protokol)
    sockfd: soket tanımlayıcısı, bir tam sayı (bir dosya tanıtıcısı gibi)
    etki alanı: tam sayı, iletişim alanı örn., AF_INET (IPv4 protokolü), AF_INET6 (IPv6 protokolü)
    türü: iletişim türü
    SOCK_STREAM: TCP (güvenilir, bağlantı yönelimli)
    SOCK_DGRAM: UDP ( güvenilmez, bağlantısız)
    protokol: İnternet Protokolü (IP) için 0 olan protokol değeri. Bu, bir paketin IP başlığındaki protokol alanında görünen sayıdır (daha fazla ayrıntı için adam protokolleri).
  • setsockopt:int setsockopt (int sockfd, int düzey, int optname,
    const void * optval, socklen_t optlen);
    Bu, dosya tanıtıcısı sockfd tarafından belirtilen soket için seçeneklerin değiştirilmesine yardımcı olur. Bu tamamen isteğe bağlıdır, ancak adres ve bağlantı noktasının yeniden kullanılmasına yardımcı olur. “Adres zaten kullanımda” gibi hataları önler.
  • Bind:int bağlama (int sockfd, const yapı sockaddr * adres,
    socklen_t addrlen);
    Soket oluşturulduktan sonra, bağlama işlevi soketi, adres (özel veri yapısı) içinde belirtilen adrese ve port numarasına bağlar. Örnek kodda, sunucuyu localhost'a bağlarız, dolayısıyla IP adresini belirlemek için INADDR_ANY kullanıyoruz.
  • dinleyin:int dinleme (int sockfd, int iş günlüğü);
    Sunucu soketini, istemcinin sunucuya bir bağlantı kurmak için yaklaşmasını beklediği pasif bir moda sokar. Biriktirme listesi, sockfd için bekleyen bağlantıların kuyruğunun büyüyebileceği maksimum uzunluğu tanımlar. Sıra dolduğunda bir bağlantı isteği gelirse, müşteri ECONNREFUSED belirtisi ile bir hata alabilir.
  • Kabul etmek:int new_socket = kabul et (int sockfd, yapı sockaddr * addr, socklen_t * addrlen);
    Dinleme soketi, sockfd için bekleyen bağlantıların kuyruğundaki ilk bağlantı isteğini ayıklar, yeni bir bağlı soket oluşturur ve bu sokete atıfta bulunan yeni bir dosya tanıtıcısı döndürür. Bu noktada, istemci ve sunucu arasında bağlantı kurulur ve veri aktarımına hazırdır.
Müşteri için Aşamalar
  • Soket bağlantısı: Sunucunun soket oluşturma ile tamamen aynı
  • connect:int connect (int sockfd, const yapı sockaddr * adres,
    socklen_t addrlen);
    Connect () sistemi çağrısı, dosya tanımlayıcısı sockfd tarafından belirtilen soketi addr tarafından belirtilen adrese bağlar. Sunucunun adresi ve bağlantı noktası adres içinde belirtilir.
Uygulama
Burada, istemci / sunucu modelini göstermek için sunucu ile istemci arasında bir merhaba mesajı gönderiyoruz.
  • server.c
  • client.c
 
Üst