llb

 avatar
unknown
plain_text
4 months ago
1.2 kB
2
Indexable
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
#include<unistd.h>
#define packetCount 10
void main()
{
srand(time(0));
int packets[packetCount],i,rate,bucketSize,remainingSize=0,timeToTransmit,clk,op;
for(i=0;i<packetCount;++i)
packets[i]=(rand()%6+1)*10;
printf("\n enter the output rate:");
scanf("%d",&rate);
printf("enter the bucket size:");
scanf("%d",&bucketSize);
i=0;
while(i<packetCount||remainingSize>0)
{
if(i<packetCount)
{
if((packets[i]+remainingSize)>bucketSize)
printf("bucket capacity exceeded!Packet %d overflow\n",packets[i]);
else
{
remainingSize+=packets[i];
printf("\n\nIncoming Packet Size :%d",packets[i]);
printf("\n bytes remaining to transmit:%d",remainingSize);
}
++i;
}
timeToTransmit=(rand()%4+1)*10;
printf("\n time left for transmission : %d units \n",timeToTransmit);
for(clk=10;clk<=timeToTransmit;clk+=10)
{
sleep(1);
if(remainingSize)
{
if(remainingSize<=rate)
op=remainingSize,remainingSize=0;
else
op=rate,remainingSize-=rate;
printf("\n Packet %d transmitted \n",op);
printf("bytes remaining to transmit :%d\n",remainingSize);
}
else
{
printf("\n time left for transmission : %d units",timeToTransmit-clk);
printf("\n No packets to transmit !!\n");
}
}
}
}
Editor is loading...
Leave a Comment