CN Lab
CN Lab
SERVER
#include<stdio.h>
#include<sys/socket.h>
#include<arpa/inet.h>//inet_addr
int main(int argc,char*argv[])
{
int socket_desc,new_socket,c;
char message[2000];
struct sockaddr_in server,client;
socket_desc=socket(AF_INET,SOCK_STREAM,0);
if(socket_desc==-1)
{
printf("Could not create socket");
}
server.sin_family=AF_INET;
server.sin_addr.s_addr=INADDR_ANY;
server.sin_port=htons(8888);
if(bind(socket_desc,(struct sockaddr*)&server,sizeof(server))<0)
{
puts("bind failed");
}
puts("bind done");
//Listen
listen(socket_desc,3);
//Accept an incoming connection
puts("Waiting for incoming connections....");
c=sizeof(struct sockaddr_in);
new_socket=accept(socket_desc,(struct sockaddr*)&client,(socklen_t*)&c);
if(new_socket<0)
{
perror("accept failed");
}
puts("Connection Accepted");
if(recv(new_socket,message,2000,0)>0)
{
puts("recv failed");
//puts(message);
}
puts(message);
puts("MESSAGE RECIEVED\n");
return 0;
}
CLIENT
#include<stdio.h>
#include<sys/socket.h>
#include<string.h>
#include<arpa/inet.h>//inet_addr
int main(int argc,char*argv[])
{
int socket_desc;
char*message;
struct sockaddr_in server;
//create socket
socket_desc=socket(AF_INET,SOCK_STREAM,0);
if(socket_desc==-1)
{
printf("Could not create socket");
}
server.sin_addr.s_addr=inet_addr("127.0.0.1");
server.sin_family=AF_INET;
server.sin_port=htons(8888);
//connect to remote server
if(connect(socket_desc,(struct sockaddr*)&server,sizeof(server))<0)
{
puts("connect error");
return 1;
}
puts("connected");
//sending message to server
message="Hai 456789\r\n\r\n";
puts("Sending Message....");
if(send(socket_desc,message,strlen(message),0)<0)
{
puts("Send failed");
return 1;
}
//sleep(1);
return 0;
}
EXP 4.A:UDP
SERVER
#include<stdio.h>
#include<sys/socket.h>
#include<stdlib.h>
#include<string.h>
#include<arpa/inet.h>//inet_addr
int main(int argc,char*argv[])
{
char message[2000];
struct sockaddr_in si_me,si_other;
int socket_desc,slen=sizeof(si_other),recv_len,i;
socket_desc=socket(AF_INET,SOCK_DGRAM,0);
if(socket_desc==-1)
{
printf("could not create socket");
}
si_me.sin_family=AF_INET;
si_me.sin_addr.s_addr=INADDR_ANY;
si_me.sin_port=htons(8888);
if(bind(socket_desc,(struct sockaddr*)&si_me,sizeof(si_me))<0)
{
puts("bind failed");
}
puts("bind done");
//keep listening for data
while(1)
{
printf("waiting for data......");
fflush(stdout);
strcpy(message,"");
//try to receive some data,this is a blocking call
if((recv_len=recvfrom(socket_desc,message,2000,0,(struct sockaddr*)&si_other,&slen))==-1)
{
perror("recvfrom()");
}
//print details of the client/peer and the data received
printf("Received packet from %s:%d\n",inet_ntoa(si_other.sin_addr),ntohs(si_other.sin_port));
for(i=0;i<recv_len;i++)
putchar(message[i]);
putchar('\n');
//now reply the client with the same data
if(sendto(socket_desc,message,recv_len,0,(struct sockaddr*)&si_other,slen)==-1)
{
perror("sendto()");
}
}
//close(socket_desc);
return 0;
}
CLIENT
#include<stdio.h>
#include<sys/socket.h>
#include<string.h>
#include<stdlib.h>
#include<arpa/inet.h>//inet_addr
int main(int argc,char*arg[])
{
struct sockaddr_in si_other;
//create socket
int s,i,slen=sizeof(si_other);
char buf[2000];
char message[2000];
if((s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))==-1)
{
perror("socket");
}
memset((char*)&si_other,0,sizeof(si_other));
si_other.sin_family=AF_INET;
si_other.sin_port=htons(8888);
if(inet_aton("127.0.0.1",&si_other.sin_addr)==0)
{
fprintf(stderr,"inet_aton()failed\n");
exit(1);
}
while(1)
{
printf("Enter Message\n");
fscanf(stdin,"%s",message);
//send the message
if(sendto(s,message,strlen(message),0,(struct sockaddr*)&si_other,slen)==-1)
{
perror("sendto()");
}
//receive a reply and print it
//clear the buffer by filling it with null,it might have previously received data
memset(buf,'\0',2000);
//try to receive some data,this is a blocking call
if(recvfrom(s,buf,2000,0,(struct sockaddr*)&si_other,&slen)==-1)
{
perror("recvfrom()");
}
puts(buf);
}
return 0;
}
SERVER
#include<stdio.h>
#include<sys/socket.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>
#include<arpa/inet.h>//inet_addr
int main(int argc,char*argv[])
{
char message[2000];
struct sockaddr_in si_me,si_other;
int socket_desc,slen=sizeof(si_other),recv_len,i;
time_t t=time(NULL);
struct tm tm=*localtime(&t);
socket_desc=socket(AF_INET,SOCK_DGRAM,0);
if(socket_desc==-1)
{
printf("Could not create socket");
}
si_me.sin_family=AF_INET;
si_me.sin_addr.s_addr=INADDR_ANY;
si_me.sin_port=htons(8888);
if(bind(socket_desc,(struct sockaddr*)&si_me,sizeof(si_me))<0)
{
puts("bind failed");
}
puts("bind done");
//keep listening for data
while(1)
{
printf("Waiting for data......\n");
fflush(stdout);
strcpy(message,"");
memset(message,'\0',2000);
//try to receive some data,this is a blocking call
if((recv_len=recvfrom(socket_desc,message,2000,0,(struct sockaddr*)&si_other,&slen))==-1)
{
perror("recvfrom()");
}
//checking commands
if(strcmp(message,"date")==0)
{
//sprintf(s,"%d",i);
sprintf(message,"Date:%d-%d-%d\
n",tm.tm_year+1900,tm.tm_year+1900,tm.tm_mon+1,tm.tm_mday);
//printf("Time:%d:%d:%d\n",tm.tm_hour,tm.tm_min,tm.tm_sec);
}
else if(strcmp(message,"time")==0)
{
//sprintf(s,"%d",i);
//sprintf("Date:%d-%d-%d\n",tm.tm_year+1900,tm.tm_mon+1,tm.tm_mday);
sprintf(message,"Time:%d:%d:%d\n",tm.tm_hour,tm.tm_min,tm.tm_sec);
}
puts(message);
//now reply the client with the same data
if(sendto(socket_desc,message,2000,0,(struct sockaddr*)&si_other,slen)==-1)
{
perror("sendto()");
}
}
//close(socket_desc);
return 0;
}
CLIENT
#include<stdio.h>
#include<sys/socket.h>
#include<string.h>
#include<stdlib.h>
#include<arpa/inet.h>//inet_addr
int main(int argc,char*argv[])
{
struct sockaddr_in si_other;
//create socket
int s,i,slen=sizeof(si_other);
char buf[2000];
char message[2000];
if((s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))==-1)
{
perror("socket");
}
memset((char*)&si_other,0,sizeof(si_other));
si_other.sin_family=AF_INET;
si_other.sin_port=htons(8888);
if(inet_aton("127.0.0.1",&si_other.sin_addr)==0)
{
fprintf(stderr,"inet_aton()failed\n");
exit(1);
}
while(1)
{
printf("Enter Command:(date/time)\n");
fscanf(stdin,"%s",message);
//send the message
if(sendto(s,message,strlen(message),0,(struct sockaddr*)&si_other,slen)==-1)
{
perror("sendto()");
}
//receive a reply and print it
//clear the buffer by filling it with null,it might have previously received data
memset(buf,'\0',2000);
//try to receive some data,this is a blocking call
if(recvfrom(s,buf,2000,0,(struct sockaddr*)&si_other,&slen)==-1)
{
perror("recvfrom()");
}
puts(buf);
}
return 0;
}
EXP 5:SWP
SERVER
#include<stdio.h>
#include<sys/socket.h>
#include<stdlib.h>
#include<string.h>
#include<arpa/inet.h>
int main(int argc,char*argv[])
{
char message[2000];
char msg[2000];
int i,j,noframe,x,x1=10,x2;
noframe=10;
i=1;
j-1;
struct sockaddr_in si_me,si_other;
int socket_desc,slen=sizeof(si_other),recv_len;
socket_desc=socket(AF_INET,SOCK_DGRAM,0);
if(socket_desc==-1)
{
printf("could not create socket");
}
si_me.sin_family=AF_INET;
si_me.sin_addr.s_addr=INADDR_ANY;
si_me.sin_port=htons(8888);
if(bind(socket_desc,(struct sockaddr*)&si_me,sizeof(si_me))<0)
{
puts("bind failed");
}
puts("\nbind done");
while(1)
{
printf("Waiting for data...");
fflush(stdout);
strcpy(message,"");
memset(message,'\0',2000);
if((recv_len=recvfrom(socket_desc,message,2000,0,(struct sockaddr*)&si_other,&slen))==-1)
{
perror("recvfrom()");
}
puts(message);
while(noframe>0)
{
sprintf(msg,"\n ack for frames %d\n",j);
if(sendto(socket_desc,msg,2000,0,(struct sockaddr*)&si_other,slen)==-1)
{
perror("sendto()");
}
noframe=noframe-1;
j++;
}
}
return 0;
}
CLIENT
#include<stdio.h>
#include<sys/socket.h>
#include<stdlib.h>
#include<string.h>
#include<arpa/inet.h>
int main(int argc,char*argv[])
{
struct sockaddr_in si_other;
int s,slen=sizeof(si_other);
char buf[2000];
char message[2000];
int i,j,noframe,x,x1=10,x2;
noframe=10;
i-1;
j=1;
if((s=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP))==-1)
{
perror("socket");
}
memset((char*)&si_other,0,sizeof(si_other));
si_other.sin_family=AF_INET;
si_other.sin_port=htons(8888);
if(inet_aton("127.0.0.1",&si_other.sin_addr)==0)
{
fprintf(stderr,"inet_aton()failed\n");
exit(1);
}
printf("number of frames is %d\n",noframe);
while(noframe>0)
{
printf("sending frame is %d\n",i);
sprintf(message,"frame %d receivde \n",i);
x=rand()%10;
if(x%10==0)
{
for(x2=1;x2<2;x2++)
{
printf("\nwaiting for %d seconds \n",x2);
sleep(x2);
}
printf("\n sending frame %d\n",i);
x=rand()%10;
}
noframe=noframe-1;
i++;
j++;
if(sendto(s,message,strlen(message),0,(struct sockaddr*)&si_other,slen)==-1)
{
perror("sendto()");
}
if(recvfrom(s,buf,2000,0,(struct sockaddr*)&si_other,&slen)==-1)
{
perror("recvfrom()");
}
puts(buf);
}
}
EXP 6:DVRP
#include<stdio.h>
struct node
{
unsigned dist[20];
unsigned from[20];
}rt[10];
int main()
{
int costmat[20][20];
int nodes,i,j,k,count=0;
printf("\nEnter the number of nodes:" );
scanf("%d",&nodes);
printf("\nEnter the cost matrix:\n");
for(i=0;i<nodes;i++)
{
for(j=0;j<nodes;j++)
{
scanf("%d",&costmat[i][j]);
costmat[i][i]=0;
rt[i].dist[j]=costmat[i][j];
rt[i].from[j]=j;
}
}
do
{
count=0;
for(i=0;i<nodes;i++)
{
for(j=0;j<nodes;j++)
{
for(k=0;k<nodes;k++)
{
if(rt[i].dist[j]>costmat[i][k]+rt[k].dist[j])
{
rt[i].dist[j]=rt[i].dist[k]+rt[k].dist[j];
rt[i].from[j]=k;
count++;
}
}
}
}
}
while(count!=0);
{
for(i=0;i<nodes;i++)
{
printf("\n\nFor router %d\n",i+1);
for(j=0;j<nodes;j++)
printf("\t\nnode %d via %d Distance %d",j+1,rt[i].from[j]+1,rt[i].dist[j]);
}
printf("\n\n");
//getch();
}
}
EXP 7:FTP
SERVER
#include<stdio.h>
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr
#include<string.h>
#include<fcntl.h>
printf("Socket created\n");
server.sin_family = AF_INET;
server.sin_addr.s_addr = INADDR_ANY;
server.sin_port = htons(8888);
listen(socket_desc, 3);
puts("Waiting for incoming connections...");
c = sizeof(struct sockaddr_in);
new_socket = accept(socket_desc, (struct sockaddr*)&client, (socklen_t*)&c);
if (new_socket < 0)
{
perror("Accept failed");
}
puts("Connection accepted");
while (1)
{
recv(new_socket, filename, 2000, 0);
fp = fopen(filename, "r");
if (fp == NULL)
{
strcpy(message, "File Not Found\r\n");
send(new_socket, message, 2000, 0);
strcpy(message, "EOF");
}
else
{
while (fgets(message, 2000, fp))
{
send(new_socket, message, 2000, 0);
puts(message);
}
fclose(fp);
}
strcpy(message, "EOF");
send(new_socket, message, 2000, 0);
}
return 0;
}
CLIENT
#include<stdio.h>
#include<string.h>
//#include<unistd.h>
#include<sys/socket.h>
#include<arpa/inet.h> //inet_addr
server.sin_addr.s_addr = inet_addr("127.0.0.1");
server.sin_family = AF_INET;
server.sin_port = htons(8888);
if (connect(socket_desc, (struct sockaddr*)&server, sizeof(server)) < 0)
{
puts("Connect error");
return 1;
}
puts("Connected");
do
{
//memset(message, '\n', 2000);
puts("FileName:");
//scanf(stdin, "%s", filename);
scanf("%s", filename);
if (send(socket_desc, filename, strlen(filename), 0) < 0)
{
puts("Send failed");
return 1;
}
fp = fopen("backup", "w");
while (recv(socket_desc, message, 2000, 0))
{
if (strcmp(message, "EOF"))
{
fputs(message, fp);
puts(message);
}
else
{
fclose(fp);
break;
}
}
} while (1);
//sleep(1);
return 0;
}
EXP 8:LEAKY
#include<stdio.h>
#include<string.h>
int main()
{
int no_of_queries, storage, output_pkt_size;
int input_pkt_size, bucket_size, size_left;
storage = 0;
no_of_queries = 4;
bucket_size = 10;
input_pkt_size = 4;
output_pkt_size = 1;
for(int i = 0; i < no_of_queries; i++)
{
size_left = bucket_size - storage;
if(input_pkt_size <= size_left)
{
storage += input_pkt_size;
printf("Buffer size = %d out of bucket size = %d\n", storage, bucket_size);
} else
{
printf("Packet loss = %d\n", (input_pkt_size - size_left));
storage = bucket_size;
printf("Buffer size = %d out of bucket size = %d\n", storage, bucket_size);
}
storage -= output_pkt_size;
}
return 0;
}
EXP10:NS2
proc sendPingPacket {} {
global ns ping0 ping1
set intervalTime 0.001
set now [$ns now]
$ns at [expr $now + $intervalTime] "$ping0 send"
$ns at [expr $now + $intervalTime] "$ping1 send"
$ns at [expr $now + $intervalTime] "sendPingPacket"
}
Agent/Ping instproc recv {from rtt} {
global seq
$self instvar node_
puts "The node [$node_ id] received an ACK from the node $from with RTT $rtt ms"
}