#include "inet.h"


void main()
{
  int sfd;
  struct sockaddr_in cli_addr,ser_addr;

  bzero((char*)&ser_addr,sizeof(ser_addr));
  ser_addr.sin_family = AF_INET;
  ser_addr.sin_addr.s_addr = inet_addr(SERV_HOST_ADDR);
  ser_addr.sin_port = htons(13);

  if( (sfd = socket(AF_INET,SOCK_DGRAM,0))<0)
    perror("socket fails");
  bzero((char*)&cli_addr,sizeof(cli_addr));

  cli_addr.sin_family = AF_INET;
  cli_addr.sin_addr.s_addr = htonl(INADDR_ANY);
  cli_addr.sin_port = htons(0);

  //cout << "binding" << flush;
  if(bind(sfd,(struct sockaddr*)&cli_addr,sizeof(cli_addr))<0)
    perror("can't bind");

  cout << "Sending a datagram to " << SERV_HOST_ADDR <<flush;

  cout <<  endl << endl;
  char msg[]="Hello World !";
  int m_len=strlen(msg);
  struct sockaddr* sa =  (struct sockaddr * ) &ser_addr;
  if(sendto(sfd,msg,m_len,0,(struct sockaddr * )&ser_addr,sizeof(ser_addr))==-1)
    perror("send err");
  char rec_buf[100];
  int n = recvfrom(sfd,rec_buf,100,0,(struct sockaddr*) 0, (socklen_t *)0);
  if(n<0) perror("Err rec");
  rec_buf[n]=0;
  cout<<rec_buf<<endl;
  
  close(sfd);
}











