#include <sys/types.h>
#include <sys/socket.h>
#include <stdio.h>
#include <sys/un.h>
#include <unistd.h>
#include <netinet/in.h>
#include <arpa/inet.h>

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

int main()
{
  int gniazdo_klienta;
  int serwer_dlugosc;
  char znak='a';
  int test1,test2,test3,test4,test5;
  struct sockaddr_in adres_serwera;

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


  //Ustalenie adresu serwera
  adres_serwera.sin_family=AF_INET; 
  adres_serwera.sin_addr.s_addr=inet_addr("127.0.0.1");
  adres_serwera.sin_port=9734;
  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();

  //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 od serwera znak %c.\n",znak);
  else blad();

  close(gniazdo_klienta);  
  exit(0);
}


