#include "inet.h"

#define EPORT 3001
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 = htonl(INADDR_ANY);
  ser_addr.sin_port = htons(EPORT);

  if( (sfd = socket(AF_INET,SOCK_DGRAM,0))<0)
    perror("socket fails");
  


  if(bind(sfd,(struct sockaddr*)&ser_addr,sizeof(ser_addr))<0)
    perror("can't bind");


  


  cout << "\nEcho Server started...\n\n";


  const int MAXLEN=2048;
  char rec_buf[MAXLEN+1];
  while(1)
    {
      

 
   


      unsigned clilen=MAXLEN;
      int n = recvfrom(sfd,rec_buf,MAXLEN,0,(struct sockaddr*) &cli_addr, &clilen);
      if(n<0) perror("Err rec");
      rec_buf[n]=0;
      cout<<rec_buf<<endl;


      if(sendto(sfd,rec_buf,MAXLEN,0,(struct sockaddr * )&cli_addr,sizeof(cli_addr))==-1)
	perror("send err");


    }
  
      close(sfd);
    
}






















