Datagram Soket Örneği
Önceki Datagram Soket İşlemleri Sonraki
Datagram Soket Örneği
Burada yerel isim alanındaki datagram akımı üzerinden veri gönderen bir grup örnek bulunmaktadır. Hem istemci hem de sunucu yazılımları Soketlerde Yerel İsim Alanı Örneği içinde gösterilenmake_named_socket işlevini kendi soketlerini oluşturmak ve isimlendirmek için kullanmaktadır.
Öncelikle sunucu yazılımını görüyoruz. Gelecek veriler için bir döngü içerisinde beklemekte ve gelen veri gerisin geriye göndericiye iletilmektedir. Tabii ki bu işe yarar bir yazılım değil, fakat ana fikri vermektedir.
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <sys/un.h>

#define SERVER  "/tmp/serversocket"
#define MAXMSG  512

int
main (void)
{
  int sock;
  char message[MAXMSG];
  struct sockaddr_un name;
  size_t size;
  int nbytes;

  /* Öncelikle dosya ismini kaldıralım,
     eğer isim yoksa bir sorun yok */
  unlink (SERVER);

  /* Soketi oluşturup sonsuz döngüye girelim. */
  sock = make_named_socket (SERVER);
  while (1)
    {
      /* Bir datagram bekliyoruz */
      size = sizeof (name);
      nbytes = recvfrom (sock, message, MAXMSG, 0,
                          (struct sockaddr *) & name, &size);
      if (nbytes < 0)
        {
          perror ("recfrom (server)");
          exit (EXIT_FAILURE);
        }

      /* Bir tanı iletisi verelim */
      fprintf (stderr, "Sunucu: alınan ileti: %s\n", message);

      /* İletiyi göndericiye geri gönderelim. */
      nbytes = sendto (sock, message, nbytes, 0,
                        (struct sockaddr *) & name, size);
      if (nbytes < 0)
        {
          perror ("sendto (server)");
          exit (EXIT_FAILURE);
        }
    }
}
Önceki Üst Ana Başlık Sonraki
Datagramların Alınması Başlangıç Datagramların Okunmasıyla İlgili Örnek
Bir Linux Kitaplığı Sayfası