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

监控视频怎么做直播网站/中国国家培训网官网查询

监控视频怎么做直播网站,中国国家培训网官网查询,大多数软件仍然是定制开发的,衡阳城乡建设部网站首页最近一段时间将原来写的kendynet网络框架重写了大部分的代码,让提供的接口更清晰,对用户更友好。 整个框架的架构分层3层: 1)单线程,基于原始数据流的网络接口,在这一层上,没有提供封包的处理,定时器事件等等。使用者可…

最近一段时间将原来写的kendynet网络框架重写了大部分的代码,让提供的接口更清晰,对用户更友好。

整个框架的架构分层3层:

1)单线程,基于原始数据流的网络接口,在这一层上,没有提供封包的处理,定时器事件等等。使用者可以在此之上按自己的需求做进一步的封装。

2)单线程,提供connection,封包处理,接收发送超时处理。

3)网络逻辑分离的异步网络框架,抽象出三个主要的类型:asynnet_t,sock_ident和msgdisp_t.

asynnet_t:网络处理引擎,使用者创建实例的时候可以传入pollercount参数,其中每一个poller都会在单独的线程中运行.

sock_ident:逻辑层操作的套接口封装,可以安全的在多线程环境下使用.

msgdisp_t:消息分离器,每个分离器有一个对应的消息队列用于接收从网络线程传递过来的消息.

msgdisp_t提供了两种使用模式:

第一种:典型的线程池模式。在这种模式下,可以创建一个消息分离器,多个逻辑线程对这个消息分离器调用

msg_loop.

第二种:共用网络层模式。在一个进程中启动N个线程,每个线程运行一个不同服务,所有这些服务共用网络通信层.

在这种情况下,网络消息需要路由到正确的服务那里.可以每个线程都创建一个消息分离器,各线程在自己的消息分离器上

调用msg_loop处理只属于自己的消息.

下面是一个异步网络服务器的示例:

#include <stdio.h>
#include <stdlib.h>
#include "core/msgdisp.h"
#include "testcommon.h"uint32_t recvsize = 0;
uint32_t recvcount = 0;///int32_t asynnet_bind(msgdisp_t disp,sock_ident sock,void *ud,int8_t raw,uint32_t send_timeout,uint32_t recv_timeout)
void asynconnect(msgdisp_t disp,sock_ident sock,const char *ip,int32_t port)
{printf("asynconnect\n");disp->bind(disp,sock,1,0,30*1000);
}void asynconnected(msgdisp_t disp,sock_ident sock,const char *ip,int32_t port)
{printf("asynconnected\n");++client_count;
}void asyndisconnected(msgdisp_t disp,sock_ident sock,const char *ip,int32_t port,uint32_t err)
{--client_count;
}int32_t asynprocesspacket(msgdisp_t disp,sock_ident sock,rpacket_t rpk)
{recvsize += rpk_len(rpk);recvcount++;asyn_send(sock,wpk_create_by_other((struct packet*)rpk));return 1;
}void asynconnectfailed(msgdisp_t disp,const char *ip,int32_t port,uint32_t reason)
{}int main(int argc,char **argv)
{setup_signal_handler();InitNetSystem();asynnet_t asynet = asynnet_new(1);msgdisp_t  disp = new_msgdisp(asynet,asynconnect,asynconnected,asyndisconnected,asynprocesspacket,asynconnectfailed);int32_t err = 0;disp->listen(disp,argv[1],atoi(argv[2]),&err);uint32_t tick,now;tick = now = GetSystemMs();while(!stop){msg_loop(disp,50);now = GetSystemMs();if(now - tick > 1000){uint32_t elapse = now-tick;recvsize = (recvsize/elapse)/1000;printf("client_count:%d,recvsize:%d,recvcount:%d\n",client_count,recvsize,recvcount);tick = now;packet_send_count = 0;recvcount = 0;recvsize = 0;}}CleanNetSystem();return 0;
}

项目代码在:https://github.com/sniperHW/luanet

目前只实现了对linux,tcp的网络支持,后续将会先完善这部分代码,并在此之上提供基于user level thread的RPC支持.

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/sniperHW/p/3517767.html

http://www.jmfq.cn/news/5277133.html

相关文章:

  • 四川省建筑信息平台/成都网站关键词推广优化
  • 昆明哪个公司做网站建设最好/怎么创建一个网址
  • 宣讲家网站两学一做/商务软文写作300字
  • 在什么文件中加入什么代码告诉搜索引擎蜘蛛网站地图的文件位置?/网站优化网站优化
  • 网站信息服务费怎么做凭证/安徽搜索引擎优化seo
  • 建网站需要多少钱2017/信息推广
  • 北京网站建设升上去/杭州网站
  • 传奇网页游戏开服/sem和seo是什么职业岗位
  • 平面网页设计培训/seo优化厂商
  • 北京pk10网站建设/seo网络推广是干嘛的
  • 南通网站建设公司排名/谷歌浏览器app
  • 做批发童车网站有哪些/seo诊断优化方案
  • 石景山成都网站建设/上海搜索seo
  • 网站文件怎么做/网站seo关键词排名推广
  • 网站开发架构mvc/百度seo是什么
  • java网站做微信分享/互联网登录的网站名
  • 沈阳外贸网站制作公司/国内最近发生的重大新闻
  • 政务网站开发方案/seo公司的选上海百首网络
  • 个人外贸网站/seo深圳优化
  • cms哪个好用/seo初级入门教程
  • 开发公司资质审查用假资料后果/seo入门培训学校
  • 怎么做展示型网站/大连网站排名推广
  • 做设计的一般在什么网站找素材/百度竞价托管一月多少钱
  • 外贸网站建设广州/网站推广基本方法是
  • 安徽建设厅网站进不去/做企业网站建设公司哪家好
  • 兼职网站建设 开源/营销心得体会感悟300字
  • 宿迁建设企业网站/排名优化公司
  • 微商城手机网站设计公司/网络广告的发布方式包括
  • 网站怎么做app吗/网店运营培训
  • 邮轮哪个网站是可以做特价/百度明星人气排行榜