Featured Post

Friday, July 29, 2016

client server communication using UDP socket programming






/*udp server.c*/

#include<unistd.h>
#include<sys/socket.h>
#include<stdio.h>
#include<string.h>
#include<netinet/in.h>
#include<sys/types.h>

#include<errno.h>
#define MAXLINE 5555
void main(int argc,char *argv[])
{
  int sockfd,n;
  unsigned short port;
  socklen_t len;
   char mesg[1024];
   struct sockaddr_in servaddr,cliaddr;
   port=(unsigned short)atoi(argv[1]);
   if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0)
   printf("error in socket creation");
   bzero(&servaddr,sizeof(servaddr));
   servaddr.sin_family=AF_INET;
   servaddr.sin_addr.s_addr=htonl(INADDR_ANY);
   servaddr.sin_port=htons(port);
   len=sizeof(servaddr);
   if(bind(sockfd,(struct sockaddr *)&servaddr,len)<0)
   perror("\nbind");

  for(;;)
   {
   len=sizeof(cliaddr);
     n=recvfrom(sockfd,&mesg,MAXLINE,0,(struct sockaddr *)&cliaddr,&len);
     sendto(sockfd,&mesg,n,0,(struct sockaddr *)&cliaddr,len);
}
 
}


output:
/home/anil/~ cc udpserver.c
/home/anil/~ ./a.out 4455 
-

/*open another new terminal for udp client program*/
                  /*udpclient.c*/

#include<stdio.h>
#include<unistd.h>
#include<sys/types.h>
#include<sys/socket.h>
#include<string.h>
#include<netinet/in.h>
#include<errno.h>
#define MAXLINE 5566

void main(int argc,char **argv[])
{

  int sockfd,n,len;
   char mesg[1024];
   unsigned short port;
  char sendline[MAXLINE],recvline[MAXLINE];
   struct sockaddr_in servaddr;
   if((sockfd=socket(AF_INET,SOCK_DGRAM,0))<0)
   {
     perror("socket");
   }
   bzero(&servaddr,sizeof(servaddr));
   servaddr.sin_family=AF_INET;
   port=(unsigned short)atoi(argv[1]);

   servaddr.sin_port=htons(port);
   if((inet_pton(AF_INET,argv[2],&servaddr.sin_addr))<0)
   {
    perror("inet_pton");
   }
   len=sizeof(servaddr);
  while(fgets(sendline,MAXLINE,stdin)!=NULL)
  {
 
    sendto(sockfd,&sendline,strlen(sendline),0,(struct sockaddr *)&servaddr,len);
   n=recvfrom(sockfd,&recvline,MAXLINE,0,(struct sockaddr *)&servaddr,&len);
   recvline[n]=0;

    printf("\n %s",recvline);
  }
}

output:

/home/anil/~ cc udpclient.c
/home/anil/~ ./a.out 4455 127.0.0.1

hi

hi

hello

hello



socket programming,example of client server programming using tcp, example of client server programming using udp, udp echo program. tcp echo program, ping program, one to one chat application, concurrent server, iterative server.bind listen accept socket read from write from, send recieve
      

No comments:

Post a Comment