#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,获得数据,由定时器限速