Untitled

 avatar
unknown
plain_text
20 days ago
1.2 kB
6
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("\nEnter 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("\nBytes remaining to transmit:%d",remainingSize);
}
++i;
}
timeToTransmit=(rand()%4+1)*10;
printf("\nTime 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("\npacket%dtransmitted\n",op);
printf("Bytes remaining to transmit:%d\n",remainingSize);
}
else
{
printf("\n Time left for transmission:%dunits",timeToTransmit-clk);
printf("\nNo packets to transmit!!\n");
}
}
}
}







Editor is loading...
Leave a Comment