当前位置: 首页 > news >正文

推广网站有哪些方式网站建设定制开发推广

推广网站有哪些方式,网站建设定制开发推广,浙江省工程建设信息网,天眼查在线查询个人令牌桶实例 令牌桶三要素 cps 每秒钟传输字节数 burst 令牌桶内最多能传输的字节数#xff0c;token的最大值 token 令牌的个数 之前是一个令牌(token)对应一个字节#xff0c;现在将一个token变为一个cps#xff0c;cps是解码速率#xff0c;每攒到一个令牌#xff…令牌桶实例 令牌桶三要素 cps 每秒钟传输字节数 burst 令牌桶内最多能传输的字节数token的最大值 token 令牌的个数 之前是一个令牌(token)对应一个字节现在将一个token变为一个cpscps是解码速率每攒到一个令牌就tokencps 不同的速率使用不同的令牌桶将令牌桶存储在一个数组中。 代码 mytbf.h #ifndef MYTBF__H_ #define MYTBF__H_#define MYTBF_MAX 1024 typedef void mytbf_t;mytbf_t *mytbf_init(int cps,int burst);int mytbf_fetchtoken(mytbf_t * ,int);int mytbf_returntoken(mytbf_t * ,int );int mytbf_destroy(mytbf_t *);#endifmytbf.c #include stdlib.h #include stdio.h #include unistd.h #include signal.h#include mytbf.htypedef void (*sighandler_t)(int);//将令牌桶的数据结构存在数组中 static struct mytbf_st * job[MYTBF_MAX]; static int inited 0; #define MIN(A,B) (A B ? A : B) static sighandler_t alrm_handler_save;/*每个token代表一个字节cps代表解码速率burst应该是cps的倍数tokentokencps*/ //这是令牌桶的数据结构这个数据结构存在数组中 struct mytbf_st {int cps; //每秒钟传输的字节数int burst; //令牌桶中令牌最大数量int token; //令牌的个数int pos; //记录令牌桶在数组的位置下标 };//信号捕捉函数 static void alrm_handler(int s) {alarm(1);//为数组中的令牌桶中的令牌做累计for(int i 0;i MYTBF_MAX; i){if(job[i] ! NULL){job[i]-token job[i]-cps;if(job[i]-token job[i]-burst)job[i]-token job[i]-burst;}} } //关闭时钟发送信号恢复 static void module_unload(void) {int i;//恢复SIGALRM到之前的功能signal(SIGALRM,alrm_handler_save);//取消时钟发送信号alarm(0);//释放令牌桶for(i 0;i MYTBF_MAX;i){free(job[i]);}} //第一次发时钟信号的函数 static void module_load(void) {//signal的返回值是注册新的行为之前的行为alrm_handler_save signal(SIGALRM,alrm_handler);alarm(1);//注册钩子函数这个不是函数调用而是当调用exit的时候才会调用atexit(module_unload); }static int get_free_pos(void) {int i 0;for(i 0;i MYTBF_MAX; i){if(job[i] NULL)return i;}return -1; }mytbf_t *mytbf_init(int cps,int burst) {int pos 0;struct mytbf_st *me;//在数组中找到空位下标pospos get_free_pos();if(pos 0){return NULL;}if( !inited ){module_load();inited 1;}me malloc(sizeof(*me));if(me NULL){return NULL;}//初始化令牌桶结构体成员me-token 0;me-cps cps;me-burst burst;me-pos pos;//将令牌桶放到数组中job[pos] me;return me; }//取令牌 int mytbf_fetchtoken(mytbf_t *ptr ,int size) {int n;struct mytbf_st *me ptr;if(size 0)return -1;while(me-token 0)pause();//当要取的令牌数大于最大令牌数量给最大令牌数量n MIN(me-token,size);me-token -n;return n;}//归还令牌 int mytbf_returntoken(mytbf_t *ptr ,int size) {struct mytbf_st *me ptr;if(size 0 )return -1;me-token size;if(me-token me-burst)me-token me-burst;return size; }//销毁令牌桶 int mytbf_destroy(mytbf_t *ptr) { //因为mytbf_t 是void类型转换下struct mytbf_st *me ptr;job[me-pos] NULL;free(me);return 0; }main.c #include stdio.h #include stdlib.h #include sys/types.h #include sys/stat.h #include fcntl.h #include unistd.h #include signal.h #include errno.h #include mytbf.h#define CPS 10 #define BUFSIZE 1024 #define BURST 100int main(int argc,char**argv) {int sfd,dfd 1;int size,errnor;char buf[BUFSIZE];int len,ret,pos;mytbf_t * tbf;if(argc 2){fprintf(stderr,Usage ....\n);exit(1);}//初始化令牌桶tbf mytbf_init(CPS,BURST);//打开要读取的文件do{sfd open(argv[1],O_RDONLY);if(sfd 0){if(errno ! EINTR){perror(open());exit(1);}}}while(sfd 0);while(1){size mytbf_fetchtoken(tbf,BUFSIZE);if(size 0){fprintf(stderr,mytbf_fetchtoken is error\n);exit(1);}while((len read(sfd,buf,size)) 0){if(errno EINTR)continue;perror(read());break;}if(len 0)break;//判断令牌是否用完if(size - len 0)mytbf_returntoken(tbf,size-len);pos 0;//使用循环读因为是向终端写while(len 0){ret write(dfd,bufpos,len);if(ret 0){ //假错继续读if(ret EINTR)continue;perror(write());exit(1);}pos ret;len - ret;}}mytbf_destroy(tbf);exit(0); } makefile all:mytbf mytbf:main.o mytbf.ogcc $^ -o $ clean:rm *.o mytbf
http://www.hkea.cn/news/14327377/

相关文章:

  • 沈阳网站建设咨询台州网站公司
  • 东莞网站设计在哪里wordpress数据库查询很慢
  • 自己建一个网站怎么赚钱跨境电商好做吗
  • 织梦网站修改幻灯片国办网站建设指引
  • 做设计拍摄的网站平台网页建设的公司
  • 做网站如何推广买量王烨桦
  • wordpress站点如何加速网站负责人 法人
  • win2008的iis7建网站流程网站建设要钞钱
  • 自助商城网站建设wordpress外贸
  • 如何建手机销售网站网页设计公司哪个好
  • 深圳营销型网站建设多少钱国外h5汇总网站
  • 内蒙古 网站建设甘肃城乡建设局安全质量网站
  • 胶东国际机场建设有限公司网站wordpress让nginx卡死
  • 如何做个盈利的网站福建省武夷山市城乡建设网站
  • 学到什么程度可以做网站深圳四站合一网站建设电话
  • 财政网站平台建设不足国有平台公司是什么意思
  • 弹幕网站开发设置网站404页面
  • 沈阳的网站制作公司哪家好北京轨道交通建设管理有限公司网站
  • 网站ftp密码怎么修改网络营销方式包括哪些
  • 建设局网站策划书网站营销推广有哪些
  • 深圳网站建设公司哪家好北京王府井大街
  • 手机如何制作网站源码网络推广有哪些常见的推广方法
  • 西安网络推广网站优化网站建设与网站开发
  • 河南定制网站建设报价专门做餐厅设计的网站
  • 网站追加备案工人找工作哪个网站好
  • 电商数据分析与数据化运营百度词条优化工作
  • 桥头镇网站建设公司专业网站建设的公司哪家好
  • wordpress 移动端网页广州网站优化地址
  • 做谷歌推广的网站如何引流logo设计网站国外
  • 网站如何加入流量统计医院网站建设系统