"Buraya dek çok güzeldi," dediğinizi duyar gibiyim, "fakat bu bilgileri
      bağlantısız veri paketi soketleri üzerinde nasıl kullanabilirim ki?".
      No problemo, amigo. İşte derdine çare.
    
      UDP soketleri uzaktaki bir konağa bağlı olmadığından kılavuz paketi
      yollamadan önce hangi bilgiyi vermemiz gerekiyor? Doğru tahmin!
      Hedef adres! Kısaca:
    
int sendto(int sockfd, const void *msg, int len, unsigned int flags,
           const struct sockaddr *to, int tolen); 
      send() işlevine ne kadar da benziyor değil mi?
      Tek farkı fazladan iki bilgi parçası var. to
      dediğimiz struct sockaddr türünde bir değişkeni
      gösteren işaretçidir (normalde struct sockaddr_in
      türündedir ve siz son anda gerekli tür dönüşümünü yaparsınız) ve
      hedef IP adresi ile port numarasını barındırır.
      tolen değişkeni sizeof(struct sockaddr)
      değerini almalıdır.
    
      Tıpkı send() gibi, sendto()
      işlevi de gönderilen bayt miktarını döndürür (bu beklediğinizden az
      olabilir tabii ki!) ve eğer hata oldu ise -1
      değerini döndürür.
    
      Tahmin edebileceğiniz gibi recv() ve
      recvfrom() işlevleri birbirlerine çok benzerdir.
      Kısaca recvfrom() işlevine bakarsak:
    
int recvfrom(int sockfd, void *buf, int len, unsigned int flags,
             struct sockaddr *from, int *fromlen); 
      Benzer olduğunu söylemiştim yani: recv()
      işlevinde olduğu gibi, sadece birkaç ek değişkene ihtiyacı var.
      from yerel bir struct sockaddr
      türünde değişkenin adresini gösteren göstergedir ki bu değişken de
      mesajın geldiği ilgili makinanın IP adresini ve port numarasını
      barındıracaktır. fromlen yerel ve
      int türünde bir göstergedir ve söz konusu
      değişkenin alması gereken ilk değer
      sizeof(struct sockaddr)'dir. İşlev, çalışıp bir
      değer döndürünce fromlen değişkeni
      from değişkenindeki adresin boyunu depoluyor
      olacaktır.
    
      recvfrom() işlevi okuduğu bayt sayısını veya bir
      hata oluşması durumunda -1 değerini döndürür
      (ve errno değişkenine uygun hata kodunu
      yerleştirir).
    
      Unutmayın, eğer connect() ile bir UDP soketine
      bağlantı kurarsanız send() ve
      recv() işlevlerini kullanmanızda bir sakınca
      yoktur. Soketin kendisi hala bir bağlantısız veri paketi soketidir
      ve gidip gelen paketler de hala UDP protokolünü kullanır. Fakat
      soket arayüzü otomatik olarak sizin yerinize gerekli hedef ve
      kaynak bilgisini pakete ekler.