Write a program using socket programming for TCP preferably in C.

, by Prashant Gunjal


//TCP Client

#include<sys/socket.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int main(int argc,char *argv[])
{
                int cont,create_socket,ch=1,j;
                int bufsize = 1024;
                char rd1[10];
                char *buffer= malloc(bufsize);
                char fname[256];

                struct sockaddr_in address;

      if ((create_socket = socket(AF_INET,SOCK_STREAM,0)) > 0)
                printf("The Socket was created\n");
                      address.sin_family = AF_INET;
                      address.sin_port = htons(10000);
                      inet_pton(AF_INET,argv[1],&address.sin_addr);
                      if (connect(create_socket,(struct sockaddr *)  
           &address,sizeof(address))  == 0)
   printf("The connection was accepted with the server %s...\n",argv[1]);
                else
                printf("connect not succeded\n");
                while(ch==1)
                {
                                //scanf("%s",&rd);
                                gets(rd1);
                                cont=strlen(rd1);
                      send(create_socket,rd1,cont,0);
                                if(strcmp(rd1,"exit")==0)
                                {
                                                ch=0;
                                                break;
                                }
                                for(j=0;j<10;j++)
                                {
                                                rd1[j]=NULL;
            }
                                //strcpy(rd,"\0");
                                recv(create_socket,rd1,10,0);
                                printf("\n",rd1);
                                puts(rd1);
                                if(strcmp(rd1,"exit")==0)
                                {
                                                ch=0;
                                                break;
                                }
                }
      return close(create_socket);
}

// Output

student@mmcoe-desktop:~$ gcc ccli.c -o c1
student@mmcoe-desktop:~$ ./c1 172.16.1.138
The Socket was created
The connection was accepted with the server 172.16.1.138...
hi xyz
hello
how r u?
fine
bye

//TCP server

#include<sys/types.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<sys/stat.h>
#include<unistd.h>
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
#include<fcntl.h>
int main()
{
     int cont,create_socket,new_socket,addrlen,fd;
      int bufsize = 1024,z,ch=1,j;
      char *buffer = malloc(bufsize);
      char rd[10];
      char error[15]="FILE NOT FOUND";
      char fname[256];
      struct sockaddr_in address;
     
     if ((create_socket = socket(AF_INET,SOCK_STREAM,0)) > 0)     /*opens  a network socket and returns a channel identifier  that may be used in future invocation of commands like read, puts  and flush.   At present only the TCP network protocol is supported;  future releases may include support for additional protocols.  The socket com‐ mand  may be used to open either the client or server side of a connection,
 depending on whether the -server switch is specified.*/
                               
printf("The socket was created\n");
address.sin_family = AF_INET;
address.sin_addr.s_addr = INADDR_ANY;
address.sin_port = htons(10000);
if (bind(create_socket,(struct sockaddr *)&address,sizeof(address)) == 0)
printf("Binding Socket\n");
listen(create_socket,3);
 printf("server listening\n");
addrlen = sizeof(struct sockaddr_in);
new_socket = accept(create_socket,(struct sockaddr *)&address,&addrlen);
printf("The Client %s is Connected...\n",inet_ntoa(address.sin_addr));
if (new_socket > 0)
  {
   while(ch==1)
  {
                //strcpy(rd,"\0");
                for(j=0;j<10;j++)
                {
                   rd[j]=NULL;
                }                    
                 recv(new_socket,rd,10,0);
                printf("\n",rd);
                puts(rd);
                if(strcmp(rd,"exit")==0)
                {
                  ch=0;
                  break;
                }

                //scanf("%s",&rd);
                gets(rd);
                cont=strlen(rd);
                send(new_socket,rd,cont,0);
                if(strcmp(rd,"exit")==0)
                {
                ch=0;
                break;
                }
       }
}
printf("Request Completed\n");
close(new_socket);
return close(create_socket);
}

// output

student@mmcoe-desktop:~$ gcc cser.c -o s1
student@mmcoe-desktop:~$ ./s1
The socket was created
Binding Socket
server listening
The Client 172.16.1.138 is Connected...
hi xyz
hello
how r u?
fine
bye

0 comments: