有一个关于用C语言编写流量控制的问题,请大神帮忙~

#include

#include

int main()

{

char str[31],temp[31]; //定义IP地址为32位的字符类型
int a,b,c,d; //定义IP地址的四个字节为a,b,c,d,并且均为整型的
printf("请输入IP地址");
while(gets(str) != NULL);

{

if(scanf(str,"%d.%d.%d.%d",&a,&b,&c,&d)==4

&& a>=0 && a<=255

&& b>=0 && b<=255

&& c>=0 && c<=255

&& d>=0 && d<=255) //IP地址每个字节的范围限制
{

printf(temp,"%d.%d.%d.%d",a,b,c,d);

if(strcmp(temp,str)==0)

{

printf("IP地址合法\n");

}

else

{

printf("IP地址不合法\n");

}

}

else

{

printf("IP地址不合法\n");

}

}

return 0;

}
在上面的基础上,我想加入一个流量控制的功能,请问怎么编写,请告知,谢谢!

流量控制指什么,能说清楚些吗

你获取的东西都转化成2进制了么,还是直接用字符串接受的

 #include "stdlib.h"
#include "iostream"
#include "stdio.h"
#define MAXMB 2
//最大字节数
const int iMaxSize = MAXMB * 1024 * 1024;
char vData[iMaxSize + 1];

int main()
{

    memset(vData, '\0', iMaxSize);
    //1.字符串接受
    while (true)
    {
        if (strlen(vData) >= iMaxSize)
            break;
    }
    return 0;
}
 #include "stdlib.h"
#include "iostream"
#include "stdio.h"
#include "vector"
#define MAXMB 2
typedef unsigned char uint8;
int main()
{
    //2.二进制,用unsigned char
    std::vector<uint8> vData;
    int iMaxSize = MAXMB * 1024 * 1024;
    while (true)
    {
        if (vData.size() >= iMaxSize)
            break;
    }
    return 0;
}

例如:

while (true)
{
if (strlen(vData) >= iMaxSize)
break;
}

你是想问根据IP来控制流量,还是这个IP的字符串累计的长度控制?还有就是,如果IP(ipv4)真要转换为字符串,用点号隔开,最多也就15个字符吧,转换为字节也不错的呢。控制链接数的话,每一个正确的IP都加1啊,断开的就减1,然后,就有链接数了

需要调用底层TCP/IP,获得数据,由定时器限速