leaky.c

 avatar
unknown
c_cpp
4 months ago
1.2 kB
3
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\nIncomimg 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 %d transmitted \n",op);
printf("Byte remaining to transmit:%d\n",remainingSize);
}
else
{
printf("\nTime left for transmission: %d units",timeToTransmit-clk);
printf("\nNo packets to transmit!!\n");
}
}
}
}

Editor is loading...
Leave a Comment