2019-06-06 17:41
⁄ 工业·编程
⁄ 共 12589字
Overview
main() –> startup() –> accept_request() –> execute_cgi()
Main senario:
Establish a web server step
建立连接– accept connection from client
Accept request – 读取一条HTTP报文
Handle request – 解释报文,采取行动
访问资源 – 访问报文中指定的资源
构建报文 – 创建带有正确HTTP首部的报文
发送响应 – give the response to client
记录事务处理过程 – record the step into log <– No such i...
tinyhttpd, 开源, 服务器阅读全文
2019-06-05 17:27
⁄ 工业·编程
⁄ 共 1993字
tinyhttpd 是一个不到 500 行的超轻量型 Http Server,用来学习非常不错,可以帮助我们真正理解服务器程序的本质。
看完所有源码,真的感觉有很大收获,无论是 unix 的编程,还是 GET/POST 的 Web 处理流程,都清晰了不少。废话不说,开始我们的 Server 探索之旅。
项目主页:http://sourceforge.net/projects/tinyhttpd/
主要函数:
void accept_request(int);
void bad_request(int);
void cat(int, FILE *);
void cannot_execu...
HTTP协议, tinyhttpd, 服务器阅读全文
2019-06-04 11:22
⁄ 工业·编程
⁄ 共 14563字
1995年3月,Dr.Dobb's Journal特约记者, 著名技术书籍作家Al Stevens采访了STL创始人AlexanderStepanov. 这份访谈纪录是迄今为止对于STL发展历史的最完备介绍, 侯捷先生在他的STL有关文章里推荐大家阅读这篇文章. 因此我将该文全文翻译如下:
Q: 您对于generic programming进行了长时间的研究, 请就此谈谈.
A: 我开始考虑有关GP的问题是在7O年代末期, 当时我注意到有些算法并不依赖于数据结构的 特定实现,而只是依...
stl, 访谈录阅读全文
2019-06-03 10:47
⁄ 工业·编程
⁄ 共 612字
protoBuf是google 的一种数据交换的格式,它独立于语言,独立于平台。google 提供了多种语言的实现:java、c#、c++、go 和 python,每一种实现都包含了相应语言的编译器以及库文件。由于它是一种二进制的格式,比使用 xml 进行数据交换快许多。与Protoful类似的序列化技术还有XML、JSON、Thrift等。
优点
与同类型的数据交换格式相比(诸如json,xml),由于protobuf是基于二进制数据传输格式,因此它具有高效的解析速度和更小...
Protobuf, 网络协议, 网络编程阅读全文
2019-06-02 15:22
⁄ 工业·编程
⁄ 共 2639字
Spring是一个生态体系(也可以说是技术体系),是集大成者,它包含了Spring Framework、Spring Boot、Spring Cloud等(还包括Spring Cloud data flow、spring data、spring integration、spring batch、spring security、spring hateoas),可以参考链接.
Spring Framework
Spring Framework是整个spring生态的基石 ,它可是硬生生的消灭了Java官方主推的企业级开发标准EJB,从而实现一统天下。Spring官方对Spring Framework简...
Spring, SpringBoot, SpringCloud, 区别阅读全文
2019-06-01 05:12
⁄ 工业·编程
⁄ 共 3276字
1.选择路由
若要将数据包发至PC2,则linux系统通过查询路由表可知168.1.1.10(目的地址)的网关地址为192.168.1.1,此时linux系统选择网卡1发送数据包。
2.邻居子系统(通过arp协议建立起邻居的信息)
选择网卡1发送数据时,首先将数据包发给邻居(网关),再由邻居转发至后面,若要发送给邻居,则必须知道邻居的MAC地址,若不知道邻居的MAC地址,则需要通过arp请求包获取邻居的MAC地址。
Linux网络体系结构由以下五个部分...
linux, 网络编程阅读全文
2019-05-31 07:00
⁄ 工业·编程
⁄ 共 413字
其实基于X86开发的路由系统,很早就有一些企业开始做了,国内的比较出名的有海蜘蛛,维盟、爱快等等,但是今天介绍的呢,是国外的一个专攻于此的厂商,当然,现在他们在02年也推出了基于他们自己ROS的硬件路由器。
MikroTik成立于1995年,总部位于拉脱维亚首都里加,主要从事开发路由器和无线ISP系统。1997年推出RouterOS系统,2002年推出RouterBOARD。
通过该软件将标准的PC电脑变成专业路由器,在软件的开发和应用上不断的更...
ROS, 路由器阅读全文
2019-05-30 21:58
⁄ 工业·编程
⁄ 共 1343字
一:LinPhone是什么
LinPhone是一个网络电话或者IP语音电话(VOIP),是一款遵循GPL的开源的网络视频电话系统,其主要如下:
使用linphone,我们可以在互联网上随意的通信,通过语音、视频、即时文本消息。
linphone使用SIP协议,是一个标准的开源网络电话系统,你能将linphone与任何基于SIP的VoIP运营商连接起来,包括我们自己开发的免费的基于SIP的Audio/Video服务器。
LinPhone是一款自由软件(或者开源软件),你可以随意的...
LinPhone, 开源阅读全文
2019-05-29 20:31
⁄ 工业·编程
⁄ 共 817字
Asterisk 与freeswitch都是流行的开源软交换服务器,Asterisk出现的比较早,大概在1999年开始此项目,应该是最流行的开源软交换服务器,整个社区上下游都已经很成熟。
freeswitch 算是后起之秀,2005年才开始,但性能和稳定性都明显优于Asterisk,但由于出现的晚,导致其功能的多样性及与其他系统的集成难度高于asterisk.
两者对比
1:Asterisk是针对百人左右的小型系统,相同的硬件配置下单系统并发也就几百路(不同版本性能有...
Asterisk, FreeSwitch, 开源, 比较阅读全文
2019-05-28 20:27
⁄ 工业·编程
⁄ 共 549字
OpenSIPS和Asterisk都是开源项目,并且都是用来做VoIP的。
它们扮演的角色不同,优缺点也各不相同。
简单地说,本质上,OpenSIPS是一个SIP Proxy Server,而Asterisk是一个Media Server。
因为,OpenSIPS仅仅是将呼叫控制命令中继到另外的服务器,而不是语音呼叫的终端。
Asterisk收到呼叫后会向目标另外建立新的呼叫,通过连接两个呼叫的音频流而让整个过程看起来像一个呼叫一样。本质上是有两个呼叫在进行,属于一种B2BUA模...
Asterisk, OpenSIPS, 区别, 开源阅读全文