OPERATING SYSTEM (PRACTICAL-2 (in c))


PRACTICAL-2 


Server and client socket program in c

Server socket program :

#include <stdio.h>

#include <netdb.h>

#include <netinet/in.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#include <sys/types.h>

#define MAX 80

#define PORT 8080

#define SA struct sockaddr

void func ( int sockfd )

{

char buff [ MAX ];

int n ;

for (;;)

{

bzero ( buff , MAX );

read ( sockfd , buff , sizeof ( buff ));

printf ( "From client: %s \t To client : " , buff );

bzero ( buff , MAX );

n = 0 ;

while (( buff [ n ++ ] = getchar ()) != ' \n ' );

write ( sockfd , buff , sizeof ( buff ));

if ( strncmp ( "exit" , buff , 4 ) == 0 )

{

printf ( "Server Exit... \n " );

break ;

}

}

}

int main ()

{

int sockfd , connfd , len ;

struct sockaddr_in servaddr , cli ;

sockfd = socket ( AF_INET , SOCK_STREAM , 0 );

if ( sockfd == - 1 )

{

printf ( "socket creation failed... \n " );

exit ( 0 );

}

else

{

printf ( "Socket successfully created.. \n " );

}

bzero ( & servaddr , sizeof ( servaddr ));

servaddr . sin_family = AF_INET ;

servaddr . sin_addr . s_addr = htonl ( INADDR_ANY );

servaddr . sin_port = htons ( PORT );

if (( bind ( sockfd , ( SA * ) & servaddr , sizeof ( servaddr ))) != 0 )

{

printf ( "socket bind failed... \n " );

exit ( 0 );

}

else

{

printf ( "Socket successfully binded.. \n " );

}

if (( listen ( sockfd , 5 )) != 0 )

{

printf ( "Listen failed... \n " );

exit ( 0 );

}

else

{

printf ( "Server listening.. \n " );

}

len = sizeof ( cli );

connfd = accept ( sockfd , ( SA * ) & cli , & len );

if ( connfd < 0 )

{

printf ( "server accept failed... \n " );

exit ( 0 );

}

else

{

printf ( "server accept the client... \n " );

}

func ( connfd );

close ( sockfd );

}



client socket program :

 

#include <netdb.h>

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <sys/socket.h>

#define MAX 80

#define PORT 8080

#define SA struct sockaddr

void func ( int sockfd )

{

char buff [ MAX ];

int n ;

for (;;)

{

bzero ( buff , sizeof ( buff ));

printf ( "Enter the string : " );

n = 0 ;

while (( buff [ n ++ ] = getchar ()) != ' \n ' );

write ( sockfd , buff , sizeof ( buff ));

bzero ( buff , sizeof ( buff ));

read ( sockfd , buff , sizeof ( buff ));

printf ( "From Server : %s " , buff );

if (( strncmp ( buff , "exit" , 4 )) == 0 )

{

printf ( "Client Exit... \n " );

break ;

}

}

}

int main ()

{

int sockfd , connfd ;

struct sockaddr_in servaddr , cli ;

sockfd = socket ( AF_INET , SOCK_STREAM , 0 );

if ( sockfd == - 1 )

{

printf ( "socket creation failed... \n " );

exit ( 0 );

}

else

{

printf ( "Socket successfully created.. \n " );

}

bzero ( & servaddr , sizeof ( servaddr ));

servaddr . sin_family = AF_INET ;

servaddr . sin_addr . s_addr = inet_addr ( "127.0.0.1" );

servaddr . sin_port = htons ( PORT );

if ( connect ( sockfd , ( SA * ) & servaddr , sizeof ( servaddr )) != 0 )

{

printf ( "connection with the server failed... \n " );

exit ( 0 );

}

else

{

printf ( "connected to the server.. \n " );

}

func ( sockfd );

close ( sockfd );

}

 

 

 

Result :

Compile - > gcc server.c -o server

gcc client.c -o client

Run - > ./server

./client

Before client.c running :


 

After client.c running :






Download doc file here....

No comments:

Post a Comment