1)Create a stream socket in local name space using c program?
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
int main(void){
int sd;
sd = socket(PF_UNIX, SOCK_STREAM, 0);
if(sd==-1){
perror("socket-call"); exit(1);
printf("pid = %u \n",getpid() );
printf("descriptor = %u \n",sd);
while(1){sleep(1);}
------------------------------------------------------------------------------------
2)** Datagram socket in local name space
#include <unistd.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <stdio.h>
#include <stdlib.h>
int main(void){
int sd;
sd = socket(PF_UNIX, SOCK_DGRAM, 0);
if(sd==-1){
perror("socket-call"); exit(1);
}
printf("pid = %u \n",getpid() );
printf("descriptor = %u \n",sd);
while(1){sleep(1);}
-------------------------------------------------------------------------------------
3)** Stream socket in ip/4 name space
#include<stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include<stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
int main(void){
int sd , n;
sleep(1);
sd=socket(PF_INET,SOCK_STREAM,IPPROTO_TCP);
if(sd==-1)
perror("Socket-call");
exit(1);
printf("pid=%u\n",getpid());
printf("descriptor=%u\n",sd);
n = listen( sd, 1 );
if ( n == -1 ) { perror("listen"); exit(1); }
while(1)
sleep(1);
} return 0;}
--------------------------------------------------------------------------------------
4)** Datagram socket ip/4 name space (UDP socket)
#include<stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include<stdlib.h>
#include <unistd.h>
#include <arpa/inet.h>
int main(void){
int sd , n;
sleep(1);
sd=socket(PF_INET,SOCK_DGRAM,IPPROTO_UDP);
if(sd==-1)
perror("Socket-call");
exit(1);
printf("pid=%u\n",getpid());
printf("descriptor=%u\n",sd);
while(1) {sleep(1);}
return 0;
------------------------------------------------------------------------------------------------
5)** TCP ECHO client and server program architechture
// client program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define BUFFERSIZE 200 // arbitrary
int main(int argc, char *argv[])
int cd,i,n,j;
char buffer[BUFFERSIZE];
struct sockaddr_in client; // An IPv4 address
if( argc != 3 )
printf("Usage: %s server-address server-port \n", argv[0] );
exit(1);
printf( "TCP-echo-client starting...\n" );
// A TCP (IPv4 stream) socket is created
cd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
//if( cd == -1)
client.sin_family = AF_INET;
client.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(client.sin_addr));
n=connect(cd,(struct sockaddr *)&client,sizeof(client));
while (1){
write (1,"\nEnter String:",15);
memset(buffer,'\0', BUFFERSIZE );
i=read (0,buffer,BUFFERSIZE);
printf( "bytes read from keyboard=%u\n", i );
j=write(cd,buffer,i);
printf("bytes written in server's socket=%u\n",j);
memset(buffer,'\0',BUFFERSIZE );
i= read(cd,buffer,BUFFERSIZE);
write(1,"replay from echo server:",24);
write(1,buffer,i);
return 0;
----------------------------------------
6)// server program:
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define SIZE 200 // arbitrary
int main(int argc, char *argv[])
int sd,i,newd,n,k;
//
char a[SIZE];
char buffer[SIZE];
socklen_t length;
struct sockaddr_in server,client; // An IPv4 address
printf( "TCP-echo-server starting...\n" );
// A TCP (IPv4 stream) socket is created
sd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
//if( sd == -1)
server.sin_family = AF_INET;
server.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(server.sin_addr));
n = bind( sd, (struct sockaddr *)&server,sizeof(server));
n=listen(sd,5);
length=sizeof(client);
newd=accept(sd, (struct sockaddr *)&client,&length);
while (1){
//write (1,"Enter the string.",17);
memset( buffer, '\0', SIZE );
i=read (newd,buffer,SIZE);
write(1,"recive from client:",19);
k=0;
for(n=i-1;n>=0;n--){
a[k++]=buffer[n];
a[k]='\0';
printf("%s\n",buffer);
// printf (" \n After the reverse of a string: %s ", strrev(str));
//write(newd,buffer,i);
write(newd,a,i);
return 0;
--------------------------------------------------------------------------------------------------
7) Write a program print client ip address and port number using TCP echo server String given by client
// client program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define SIZE 200 // arbitrary
int main(int argc, char *argv[])
int sd,i,newd,n,k;
//
char a[SIZE];
char buffer[SIZE];
socklen_t length;
struct sockaddr_in server,client; // An IPv4 address
printf( "TCP-echo-server starting...\n" );
// A TCP (IPv4 stream) socket is created
sd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
//if( sd == -1)
server.sin_family = AF_INET;
server.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(server.sin_addr));
n = bind( sd, (struct sockaddr *)&server,sizeof(server));
n=listen(sd,5);
length=sizeof(client);
newd=accept(sd, (struct sockaddr *)&client,&length);
while (1){
//write (1,"Enter the string.",17);
memset( buffer, '\0', SIZE );
i=read (newd,buffer,SIZE);
write(1,"recive from client:",19);
k=0;
for(n=i-1;n>=0;n--){
a[k++]=buffer[n];
a[k]='\0';
printf("%s\n",buffer);
printf("client ip address is <%s>\n",inet_ntoa(client.sin_addr));
printf("client port is <%d>\n",ntohs(client.sin_port));
write(newd,a,i);
return 0;
------------------------------------------
8)server program previes program
-----------------------------------------------------------------------------------
9*) write a program TCp echo concurrent server
server program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define SIZE 200 // arbitrary
int main(int argc, char *argv[])
int sd,i,newd,n,k;
//
// char a[SIZE];
char buffer[SIZE];
socklen_t length;
struct sockaddr_in server,client; // An IPv4 address
printf( "TCP-echo-server starting...\n" );
// A TCP (IPv4 stream) socket is created
sd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
server.sin_family = AF_INET;
server.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(server.sin_addr));
n = bind( sd, (struct sockaddr *)&server,sizeof(server));
n=listen(sd,20);
length=sizeof(client);
while(1){
newd=accept(sd, (struct sockaddr *)&client,&length);
pid_t pid = fork();
if(pid == 0){
while (1){
n=read(newd,buffer,SIZE);
write(1,"Received from client:",20);
printf("%s\n",buffer);
write(newd,buffer,n);
return 0;
---------------------------------------------------------------------------------------------------------
10)))Write a program tcp Date time client server program ?
server program::
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include<time.h>
#define SIZE 200 // arbitrary
int main(int argc, char *argv[])
int sd,i,newd,n,k;
char a[SIZE];
time_t t,T;
char *time1;
char buffer[SIZE];
socklen_t length;
char date_string[25];
struct sockaddr_in server,client;
printf( "TCP-echo-server starting...\n" );
sd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
server.sin_family = AF_INET;
length=sizeof(client);
newd=accept(sd, (struct sockaddr *)&client,&length);
server.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(server.sin_addr));
n = bind( sd, (struct sockaddr *)&server,sizeof(server));
n=listen(sd,5);
length=sizeof(client);
newd=accept(sd, (struct sockaddr *)&client,&length);
memset( buffer, '\0', SIZE );
T=time(&t);
printf("No of seconds=%lu\n",T);
time1=ctime(&t);
printf("string format %s\n",time1);
write(STDOUT_FILENO,"Seconds since Epoch using [date] command = ",
43 );
system("/bin/date +%s");
printf("before [ctime] call, Time zone = %s \n", *tzname );
// following statement copies, date and time in human readable
// form, in [date_string]
strcpy( date_string, ctime( &t) );
printf("after [ctime] call, Time zone = %s \n", *tzname );
i=strlen(time1);
write(newd,time1,i);
printf("after [ctime] call, Time zone = %s \n", *tzname );
printf("date by [ctime] call = %s \n", date_string );
return 0;
---------------------------------------------------------------------------
11)) client program:
#include<stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include<unistd.h>
#define SIZE 200 // arbitrary
int main(int argc, char *argv[])
int cd; // to be used as socket descriptor
int n,i,j;
char buffer[SIZE];
struct sockaddr_in client;
if( argc != 3 )
{
printf("Usage: %s server-address server-port \n", argv[0] );
exit(1);
cd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
if( cd == -1 ) { perror("socket-call"); exit( 1 ); }
client.sin_family = AF_INET;
client.sin_port = htons( atoi(argv[2]) );
n = inet_aton( argv[1], &(client.sin_addr) );
n = connect( cd, (struct sockaddr *) &client,
sizeof(client) );
memset( buffer, '\0', SIZE );
i = read(cd, buffer, SIZE );
if( i == -1 ) { perror("read1"); exit(1); }
j = write( 1, buffer, i );
if( j == -1 ) { perror("write1"); exit(1); }
return 0;
--------------------------------------------------------------------------
Write a program on concurrent daytime client server program
12*) client program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define BUFFERSIZE 200 // arbitrary
int main(int argc, char *argv[])
int cd,i,n,j;
char buffer[BUFFERSIZE];
struct sockaddr_in client; // An IPv4 address
if( argc != 3 )
printf("Usage: %s server-address server-port \n", argv[0] );
exit(1);
printf( "TCP-echo-client starting...\n" );
// A TCP (IPv4 stream) socket is created
cd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
//if( cd == -1)
client.sin_family = AF_INET;
client.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(client.sin_addr));
n=connect(cd,(struct sockaddr *)&client,sizeof(client));
while (1){
write (1,"Enter the string.",17);
memset( buffer, '\0', BUFFERSIZE );
i=read (0,buffer,BUFFERSIZE);
printf( "bytes read from keyboard=%u\n", i );
j=write(cd,buffer,i);
printf("bytes written in server's socket=%u\n",j);
memset( buffer, '\0', BUFFERSIZE );
i= read(cd,buffer,BUFFERSIZE);
write(1,"replay from echo server",17);
write(1,buffer,i);
return 0;
---------------------------------------------------------------------------------
13))server program::
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include<time.h>
#define SIZE 200 // arbitrary
int main(int argc, char *argv[])
int sd,i,newd,n,k;
//
char a[SIZE];
time_t t,T;
char *time1;
char buffer[SIZE];
char date_string[25];
socklen_t length;
struct sockaddr_in server,client; // An IPv4 address
printf( "TCP-echo-server starting...\n" );
// A TCP (IPv4 stream) socket is created
sd = socket( PF_INET, SOCK_STREAM, IPPROTO_TCP );
//if( sd == -1)
server.sin_family = AF_INET;
// length=sizeof(client);
// newd=accept(sd, (struct sockaddr *)&client,&length);
server.sin_port=htons(atoi(argv[2]));
n = inet_aton( argv[1],&(server.sin_addr));
n = bind( sd, (struct sockaddr *)&server,sizeof(server));
n=listen(sd,5);
length=sizeof(client);
while(1){
newd=accept(sd, (struct sockaddr *)&client,&length);
pid_t pid = fork();
if(pid == 0){
while (1){
n=read(newd,buffer,SIZE);
write(1,"Received from client:",20);
printf("%s\n",buffer);
write(newd,buffer,n);
memset( buffer, '\0', SIZE );
T=time(&t);
printf("No of seconds=%lu\n",T);
write(STDOUT_FILENO,"Seconds since Epoch using [date] command = ", 43 );
system("/bin/date +%s");
printf("before [ctime] call, Time zone = %s \n", *tzname );
// following statement copies, date and time in human readable
// form, in [date_string]
strcpy( date_string, ctime( &t) );
printf("after [ctime] call, Time zone = %s \n", *tzname );
time1=ctime(&t);
printf("string format %s\n",time1);
i=strlen(time1);
write(newd,time1,i);
}
return 0;
----------------------------------------------------------------------------------------------
write a program tock client program
client program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define BUFFERSIZE 200 // arbitrary
int main(void)
int cd,i,n,j;
char buffer[BUFFERSIZE];
struct sockaddr_in client; // An IPv4 address
int port;
char address[20];
write( 1,"IP address of server ? ", 23 );
scanf( "%s", address );
write( 1,"port number of server ? ", 24 );
scanf("%u", &port );
printf( "TCP-echo-client starting...\n" );
cd = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
client.sin_family = AF_INET;
client.sin_port=htons(port);
n = inet_aton( address,&(client.sin_addr));
n=connect(cd,(struct sockaddr *)&client,sizeof(client));
while (1){
memset( buffer, '\0', BUFFERSIZE );
n = read(cd,buffer,BUFFERSIZE);
write (1,"from Server:", 12);
write(1,buffer,n);
write (1,"\nto server:",11);
memset( buffer, '\0', BUFFERSIZE );
n = read(0,buffer,BUFFERSIZE);
write(cd,buffer,n);
if(strstr(buffer,"quit")) break;
}
return 0;
---------------------------------------------------------------------------------
server program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define SIZE 200 // arbitrary
#define PORT 8000
int main(int argc, char *argv[])
int sd,i,newd,n,k;
char a[SIZE];
char buffer[SIZE];
socklen_t length;
struct sockaddr_in server; // An IPv4 address
printf( "TCP-echo-server starting...\n" );
sd = socket( AF_INET, SOCK_STREAM, IPPROTO_TCP );
server.sin_family = AF_INET;
server.sin_port=htons(PORT);
server.sin_addr.s_addr = htonl( INADDR_ANY );
n = bind( sd, (struct sockaddr *)&server,sizeof(server));
n=listen(sd,1);
while (1){
newd=accept(sd,NULL,0);
write(newd,buffer,sizeof(buffer));
while(1){
memset( buffer, '\0', SIZE);
n=read(newd,buffer,SIZE);
if( strstr( buffer, "quit" ) != NULL) break;
write(1,"From client:",12);
write(1,buffer,n);
write(1,"TO client:",10);
memset( buffer, '\0', SIZE);
n=read(0,buffer,SIZE);
write(newd,buffer,n);
}
return 0;
-------------------------------------------------------------------------------------------------------------
write a program UDP client serverr program
server program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <errno.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define SERVER_PORT 50004
#define BUFFERSIZE 512 // no more than this
int main()
int ser_sd;
struct sockaddr_in server_addr, client_addr;
socklen_t clientlength;
char buffer[BUFFERSIZE];
ssize_t i, j ;
int n;
ser_sd=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);
server_addr.sin_family=AF_INET;
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);
server_addr.sin_port=htons(SERVER_PORT);
n=bind(ser_sd,(struct sockaddr *)&server_addr,sizeof(server_addr));
clientlength = sizeof(client_addr);
//while( 1 )
//{
//printf("%s: using UDP port-%u \n", argv[0], SERVER_PORT );
memset( buffer, '\0', BUFFERSIZE );
i = recvfrom(ser_sd,buffer,BUFFERSIZE,0,(struct sockaddr *)&client_addr,&clientlength );
if( i == -1 ) perror("recvfrom-call");
write( 1, "received from client-> ", 23 );
j = sendto(ser_sd,buffer,i,0,(struct sockaddr *)&client_addr,clientlength);
return 0;
---------------------------------------------------------------------------------
client program
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#define SIZE 512
int main( int argc, char *argv[])
int cd; // to be used as socket descriptor
int n;
ssize_t i;
char buffer[SIZE];
struct sockaddr_in server, client;
socklen_t len;
socklen_t len1;
if( argc != 5 )
printf("usage -> prog-name server-address server-port \n");
printf("example -> %s 192.168.5.58 7 \n", argv[0] );
exit(1);
cd=socket( AF_INET,SOCK_DGRAM,IPPROTO_UDP);
if( cd == -1 ) { perror("socket-call"); exit(1); }
//initializing the members of local address
client.sin_family = AF_INET;
n = inet_aton( argv[3], &(client.sin_addr));
if( n == 0 ) { perror("invalid-address"); exit(1); }
client.sin_port = htons(atoi(argv[4]));
n = bind(cd,(struct sockaddr *) &client,sizeof(struct sockaddr));
if( n == -1 ) { perror("bind-call"); exit(1); }
//initializing the members of remote address
server.sin_family = AF_INET;
n = inet_aton( argv[1], &(server.sin_addr));
if( n == 0 ) { perror("invalid-address"); exit(1); }
server.sin_port = htons(atoi(argv[2]));
write(1,"Enter a string: ", 16 );
memset( buffer, '\0', SIZE );
i = read(0, buffer, SIZE );
len=sizeof(struct sockaddr);
n = sendto( cd, buffer, i, 0, (struct sockaddr *)&server,len);
if( n == -1 ) { perror("sendto-call"); exit(1); }
memset( buffer, '\0', SIZE );
len1 = sizeof(struct sockaddr);
n = recvfrom( cd, buffer,SIZE,0,(struct sockaddr *)&server,&len1);
if( n == -1 ) { perror("recvfrom-call-full"); exit(1); }
write( 1, "From server->", 13 );
write( 1, buffer, n );
//shutdown( cd, SHUT_RDWR );
return 0;