2 qq 34556554 qq_34556554 于 2016.04.29 13:04 提问

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

#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;

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

7个回答

tusong86
tusong86   2016.04.29 13:28

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

qq_34556554
qq_34556554 就是接入主机服务器,如果大于多少多少M就断开
一年多之前 回复
b491985496
b491985496   2016.04.29 14:06

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

b491985496
b491985496   2016.04.29 14:23
 #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;
}
b491985496
b491985496   2016.04.29 14:50
 #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;
}
ZGZ1002
ZGZ1002   2016.04.29 17:39

例如:

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

Lov_NinGx
Lov_NinGx   2016.04.29 21:17

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

lboych
lboych   2016.05.02 09:32

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

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!