#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>


void blad()
{
  perror("Blad klienta.");
  exit(1);

}

int main()
{
  int gniazdo_klienta;
  int serwer_dlugosc;
  char znak;
  int test1,test2,test3,test4,test5;
  struct sockaddr_un adres_serwera;

  //Utworzenie gniazda klienta
  test1=gniazdo_klienta=socket(AF_UNIX, SOCK_STREAM,0);
  if (test1==-1) blad();


  //Ustalenie adresu serwera
  adres_serwera.sun_family=AF_UNIX;
  strcpy(adres_serwera.sun_path,"gniazdo_serwera");
  serwer_dlugosc=sizeof(adres_serwera); 
  
  //Polaczenie gniazda klienta z gniazdem serwera
  test1=connect(gniazdo_klienta,(struct sockaddr *)&adres_serwera,serwer_dlugosc);  
  if (test1==-1) blad();

  znak='a';

  //Komunikacja gniazda serwera z gniazdem klienta
  test4=write(gniazdo_klienta,&znak,1);
  if (test4>0) printf("Wyslalem do serwera znak %c.\n",znak);
  else blad();

  test5=read(gniazdo_klienta,&znak,1);
  if (test5>0) printf("Otrzymalem do serwera znak %c.\n",znak);
  else blad();

  close(gniazdo_klienta);  

  exit(0);
}


