Вы находитесь на странице: 1из 23

PROCESS CREATION

PROGRAM
#include<stdio.h>
#include<string.h>
#include<sys/types.h>
#define MAX_COUNT 10
#define BUF_SIZE 100
main(void)
{
pid_t pid;
int i;
char buf[BUF_SIZE];
fork();
for(i=1;i<=MAX_COUNT;i++)
{
sprintf(buf,"This line is from pid %d,value=%d\n",getpid(),i);
write(1,buf,strlen(buf));
}
}

OUTPUT
[student@svcet bala]$ vi process.c
[student@svcet bala]$ cc process.c
[student@svcet bala]$ ./a.out
This line is from pid 5540,value=1
This line is from pid 5540,value=2
This line is from pid 5540,value=3
This line is from pid 5540,value=4
This line is from pid 5540,value=5
This line is from pid 5540,value=6
This line is from pid 5540,value=7
This line is from pid 5540,value=8
This line is from pid 5540,value=9
This line is from pid 5540,value=10
This line is from pid 5541,value=1
This line is from pid 5541,value=2
This line is from pid 5541,value=3
This line is from pid 5541,value=4
This line is from pid 5541,value=5
This line is from pid 5541,value=6
This line is from pid 5541,value=7
This line is from pid 5541,value=8
This line is from pid 5541,value=9
This line is from pid 5541,value=10

SOCKET CREATION
PROGRAM
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
main()
{
int sockfd1,sockfd2;
sockfd1=socket(AF_INET,SOCK_STREAM,0);
sockfd2=socket(PF_INET,SOCK_DGRAM,0);
if(sockfd1==-1)
{
printf("Socket 1 is not created");
}
else
{
printf("socket is created\tsocket1 file descriptor value is %d\n",sockfd1);
}
if(sockfd2==-1)
{
printf("socket2 is not created");
}
else{
printf("socket2 is created\t socket2 is descriptor value is%d\n",sockfd2);
}
}

OUTPUT
[student@svcet bala]$ vi soc.c
[student@svcet bala]$ cc soc.c
[student@svcet bala]$ ./a.out
socket is created

socket1 file descriptor value is 3

socket2 is created

socket2 is descriptor value is4

BIND FUNCTION
PROGRAM
#include<stdio.h>
#include<stdlib.h>
#include<sys/socket.h>
#include<netinet/in.h>
#include<arpa/inet.h>
#define PORTNO 3550
main()
{
int sockfd,i=PORTNO;
struct sockaddr_in myaddr;
if((sockfd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("Creation error");
}
myaddr.sin_family=AF_INET;
myaddr.sin_port=htons(PORTNO);
myaddr.sin_addr.s_addr=INADDR_ANY;
if(bind(sockfd,(struct sockaddr*)&myaddr,sizeof(struct sockaddr))!=-1)
{
printf("Socket is binded at port no %d\n",i);
}
else
{
printf("Binding Error\n");
}
}

OUTPUT
[student@svcet bala]$ vi bindfunc.c
[student@svcet bala]$ cc bindfunc.c
[student@svcet bala]$ ./a.out
Socket is binded at port no 3550

ACCEPT FUNCTION
PROGRAM
#include<stdlib.h>
#include<stdio.h>
#include<strings.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#define PORT 3550
#define BACKLOG 12
int main()
{
int fd1,fd2;
struct sockaddr_in server;
struct sockaddr_in client;
int sin_size;
if(fd1=socket(AF_INET,SOCK_STREAM,0)==-1)
{
printf("socket()error");
exit(-1);
}
server.sin_family=AF_INET;
server.sin_port=htons(PORT);
server.sin_addr.s_addr=INADDR_ANY;
bzero(&(server.sin_zero),8);
if(bind(fd1,(struct sockaddr*)&server,sizeof(struct sockaddr)==-1))
{
printf("server is in accept mode\n");

exit(-1);
}
if(listen(fd1,BACKLOG)==-1)
{
printf("listen()error\n");
exit(-1);
}
else
{
printf("server in accept mode");
while(1)
{
sin_size=sizeof(struct sockaddr_in);
if(fd2=accept(fd1,(struct sockaddr*)&client,&sin_size)==-1)
{
printf("accept()error\n");
exit(-1);
}
else
{
printf("server in accept mode\n");
printf("You get a connection from %s\n",inet_ntoa(client.sin_addr));
close(fd2);
}
}
}
}

OUTPUT
[student@svcet bala]$ vi acceptfunc.c
[student@svcet bala]$ cc acceptfunc.c
[student@svcet bala]$ ./a.out
server is in accept mode

LISTEN FUNCTION
PROGRAM
#include<stdlib.h>
#include<stdio.h>
#include<strings.h>
#include<netinet/in.h>
#include<sys/types.h>
#include<sys/socket.h>
#define PORT 3550
#define BACKLOG 12
int main()
{
int fd;
struct sockaddr_in server;
struct sockaddr_in client;
int sin_size;
int x;
if((fd=socket(AF_INET,SOCK_STREAM,0))==-1)
{
printf("socket()error");
exit(-1);
}
server.sin_family=AF_INET;
server.sin_port=htonl(PORT);
server.sin_addr.s_addr=INADDR_ANY;
bzero(&(server.sin_zero),8);
if(bind(fd,(struct sockaddr*)&server,sizeof(struct sockaddr))==-1)
{

printf("Bind error\n");
exit(-1);
}
x=listen(fd,BACKLOG);
if(x==-1)
{
printf("listen()error");
exit(-1);
}
else
{
printf("server is in the listening mode\n");
}
close(fd);
}

OUTPUT
[student@svcet bala]$ vi listenfunc.c
[student@svcet bala]$ cc listenfunc.c
[student@svcet bala]$ ./a.out
server is in the listening mode

ADDRESS RESOLUTION PROTOCOL


PROGRAM
#include<unistd.h>
#include<stdio.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<strings.h>
#include<sys/socket.h>
int main()
{
int sd,j=0,port=2000;
char con[50]="0";
struct sockaddr_in ser;
char ip[50][50]={"121.0.0.1","121.0.0.2","121.0.0.3","121.0.0.4"};
char eth[50]
[50]={"121.32.45.0.0.1","121.32.45.0.0.2","121.32.45.0.0.3","121.32.45.0.0.4"};
sd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
bzero((char*)&ser,sizeof(ser));
ser.sin_family=AF_INET;
ser.sin_port=htons(port);
ser.sin_addr.s_addr=htonl(INADDR_ANY);
printf("Enter the ip address");
scanf("%s",&con);
for(j=0;j<4;j++)
{
if(strcmp(con,ip[j])==0)
{
printf("Ethernet address is:%s\n",eth[j]);

break;
}
}
return 0;
}

OUTPUT
[student@svcet bala]$ vi arp.c
[student@svcet bala]$ cc arp.c
[student@svcet bala]$ ./a.out
Enter the ip address121.0.0.1
Ethernet address is:121.32.45.0.0.1

REVERSE ADDRESS RESOLUTION PROTOCOL


PROGRAM
#include<unistd.h>
#include<stdio.h>
#include<sys/types.h>
#include<netinet/in.h>
#include<strings.h>
#include<sys/socket.h>
int main()
{
int sd,j=0,port=2000;
char con[50]="0";
struct sockaddr_in ser;
char ip[50][50]={"121.0.0.1","121.0.0.2","121.0.0.3","121.0.0.4"};
char eth[50]
[50]={"121.32.45.0.0.1","121.32.45.0.0.2","121.32.45.0.0.3","121.32.45.0.0.4"};
sd=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
bzero((char*)&ser,sizeof(ser));
ser.sin_family=AF_INET;
ser.sin_port=htons(port);
ser.sin_addr.s_addr=htonl(INADDR_ANY);
printf("Enter the Ethernet address");
scanf("%s",&con);
for(j=0;j<4;j++)
{
if(strcmp(con,eth[j])==0)
{
printf("IP address is:%s\n",ip[j]);

break;
}
}
return 0;
}

OUTPUT
[student@svcet bala]$ vi rarp.c
[student@svcet bala]$ cc rarp.c
[student@svcet bala]$ ./a.out
Enter the Ethernet address121.32.45.0.0.1
IP address is:121.0.0.1

SLIDDING WINDOW PROTOCOL


PROGRAM
#include<stdio.h>
#include<string.h>
int sep(int pn)
{
printf("\n Selection repeat of packet%d",pn);
printf("Packet %send=>",pn);
printf("Packet %d received",pn);
printf("ACK %d received",pn);
}
int calculate(int ws,int pno,int tot)
{
int n,x=0;
if(pno<ws)
n=ws-pno;
else
{
n=tot-pno;
if(n<=ws)
n=n;
else
n=ws-(pno%ws);
}
return n;
}
void trans(int winsize,int totpac,int pkno,int pcount)
{

int c,count=0,i;
while(pcount<=totpac)
{
if(count==winsize)
{
printf("\n Next session");
count =0;
}
if(pkno==pcount)
{
printf("\n The packet %d is discarded",pkno);
pcount++;
c=calculate(winsize,pkno,totpac);
printf("\n The remaining packet to be send in this session %d",c);
for(i=0;i<pcount;i++)
{
printf("\n packet %d send=>",pcount);
printf("\t packet %d is received==>",pcount);
printf("\n ack %d received",pcount);
pcount++;
count=0;
}
sep(pkno);
printf("\n..");
count=0;
}
else
{

printf("\nPacket %d Send=>",pcount);
printf("\n Packet %d is received=>",pcount);
printf("\npack %d received",pcount);
pcount++;
}
count++;
}
}
int main()
{
int totpac,winsize,pkno,pcount;
char c;
printf("\n Enter the window size:");
scanf("%d",&winsize);
printf("\n Enter the total no of packets");
scanf("%d",&totpac);
if(totpac<winsize)
{
printf("Window size is greator no of packets");
return 0;
}
printf("do you want ti kill any packets(y/n)");
scanf("%s",&c);
if(c=='y')
{
printf("Enter the number to kill");
scanf("%d",&pkno);
if(pkno>totpac)

{
printf("Enter the correct packet number");
return 0;
}
}
pcount=1;
trans(winsize,totpac,pkno,pcount);
}

OUTPUT
[student@svcet bala]$ vi slidewindow.c
[student@svcet bala]$ vi slidewindow.c
[student@svcet bala]$ cc slidewindow.c
[student@svcet bala]$ ./a.out
Enter the window size: 2
Enter the total no of packets 5
do you want ti kill any packets(y/n)

Packet 1 Send=> Packet 1 is received=>


pack 1 received = >Packet 2 Send=>
Packet 2 is received=> Pack 2 received
Next session
Packet 3 Send=> Packet 3 is received=>
pack 3 received
Packet 4 Send=> Packet 4 is received=>
pack 4 received
Next session
Packet 5 Send=> Packet 5 is received=>

Вам также может понравиться