Skip to content

ileri/C-Socket-Programming

Repository files navigation

OMÜ Bilgisayar Mühendisliği - Sistem Programlama Dersi - Soket Programlama

Soket oluşturmak için gerekli fonksiyon ve kütüphane açıklamaları aşağıdadır.

Kaynak kodlar gcc dosya_adi.c -o derlenmis_dosya komutu ile derlenebilir, ekstra bir parametreye gerek yoktur.

sys/socket.h

Soket oluşturmak için gerekli fonksiyonları içeren başlık dosyasıdır.

arpa/inet.h

Soket adresi oluşturmak için gerekli olan fonksiyon ve sabitleri içeren başlık dosyasıdır. Bu kütüphane içerisinde diğer gerekli alt kütüphaneleri de koda dahil ettiği için diğer bir çok başlık dosyasını import etmeye gerek kalmaz.

socket()

Bağlantı için gerekli endpoint (uç birim) oluşturur. Başarılı olması durumunda bir dosya tanımlayıcısı (file descriptor) döner. Başarısız olursa da -1 değerini döner.

Parametreleri:

1 : Domain ( Specifies the communications domain in which a socket is to be
    created. )
2 : Type ( Specifies the type of socket to be created. )
3 : Protocol ( Specifies a particular protocol to be used with the socket.
    Specifying a protocol of 0 causes socket() to use an unspecified default
    protocol appropriate for the requested socket type.)
AF_INET  : IPv4 Protokolü
AF_INET6 : IPv6 Protokolü
SOCK_STREAM : TCP
SOCK_DGRAM  : UDP  
0           : Varsayılan protokol
IPPROTO_UDP : UDP protokolü

sockaddr_in

  • sin_family : AF_INET olarak belirlenmelidir.

  • sin_port : Portu belirler.

    • htons : Port numarasını network byte order'a dönüştürür.
  • sin_addr : IP host address

    • s_addr : Host interface address

bind()

Parametreleri:

 1 : Socket file descriptor  ( int )
 2 : Socket address          ( *sockaddr )
 3 : Server address length   ( socketlen_t )

connect()

Parametreleri:

 1 : Socket file descriptor  ( int )
 2 : Socket address          ( *sockaddr )
 3 : Server address length   ( socketlen_t )

listen()

Parametreleri:

 1 : Socket file descriptor  ( int )
 2 : Backlog                 ( int )

The backlog argument defines the maximum length to which the queue of pending connections for sockfd may grow.

accept()

Parametreleri:

 1 : Socket file descriptor  ( int )
 2 : Socket address          ( *sockaddr )
 3 : Socket length           ( *socklen_t )

memset()

Parametreleri:

 1 : dest : Destination         ( *char )
 2 : c    : Character to fill   ( char  )
 3 : n    : Size                ( int   )

İstenilen bir karakteri (unsigned char), dest parametresindeki bellek bölgesinin ilk n parametre değeri kadar byte'ına kopyalar.

recv()

Parametreleri:

 1 : Socket file descriptor  ( int )
 2 : Buffer                  ( *void )
 3 : Buffer length           ( size_t )
 4 : Flags                   ( int )

send()

Parametreleri:

 1 : Socket file descriptor ( int )
 2 : Buffer                 ( *void )
 3 : Buffer length          ( size_t )
 4 : Flags                  ( int )

sendto()

Parametreleri:

 1 : Socket file descriptor ( int )
 2 : Buffer                 ( *void )
 3 : Buffer length          ( size_t )
 4 : Flags                  ( int )
 5 : Socket address         ( *sockaddr )
 6 : Socket length          ( socklen_t )

recvfrom()

Parametreleri:

 1 : Socket file descriptor ( int )
 2 : Buffer                 ( *void )
 3 : Buffer length          ( size_t )
 4 : Flags                  ( int )
 5 : Socket address         ( *sockaddr )
 6 : Socket length          ( *socklen_t )

About

OMÜ Bilgisayar Mühendisliği - Sistem Programlama Dersi - Soket Programlama Konu Anlatımı

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published