如何在Windows平台上用C++编写一个好的网络通信框架
4个回答
展开全部
1 首先,你要会基本的socket编程,这个是少不了的,这方面的书不多,推荐的书籍是<<windows网络编程>>
2 需要熟悉socket的接口,包括如何调用,参数意义,返回值意义.这方面,windows下,msdn可以帮到你.
3 熟悉socket编程的几个模式,每个系统在这方面不同,windows下,你需要去了解,轮询模式以及完成端口模式,这两个模式,都有具体的应用场景,不同的场景,可以用不同的模式.
4 阅读一份好的代码以供参考,熟悉如果要写好的网络框架,怎么打包,怎么处理异常.这方面的建议是飞鸽源代码,原因有三:
(1)飞鸽的源代码是开源的,你可以下载到.
(2) 飞鸽的代码量不大,是可以读完的.
(3) 飞鸽的表现十分优秀,在消息传递,文件发送方面都十分不错,比如文件传输方面,局域网下,可以达到12.8M的(这个是我个人的观测),几乎是我见过的局域网文件传输最快了,同样情况下,QQ最快只能到7.6M.这就证明了它多么的优秀.(传输速度跟局域网状况有关,上面关于飞鸽和QQ是在我的局域网内观测的数据,不同人可能不同.另外国内的飞鸽版本-飞Q,传输性能就弱了很多).
2 需要熟悉socket的接口,包括如何调用,参数意义,返回值意义.这方面,windows下,msdn可以帮到你.
3 熟悉socket编程的几个模式,每个系统在这方面不同,windows下,你需要去了解,轮询模式以及完成端口模式,这两个模式,都有具体的应用场景,不同的场景,可以用不同的模式.
4 阅读一份好的代码以供参考,熟悉如果要写好的网络框架,怎么打包,怎么处理异常.这方面的建议是飞鸽源代码,原因有三:
(1)飞鸽的源代码是开源的,你可以下载到.
(2) 飞鸽的代码量不大,是可以读完的.
(3) 飞鸽的表现十分优秀,在消息传递,文件发送方面都十分不错,比如文件传输方面,局域网下,可以达到12.8M的(这个是我个人的观测),几乎是我见过的局域网文件传输最快了,同样情况下,QQ最快只能到7.6M.这就证明了它多么的优秀.(传输速度跟局域网状况有关,上面关于飞鸽和QQ是在我的局域网内观测的数据,不同人可能不同.另外国内的飞鸽版本-飞Q,传输性能就弱了很多).
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以通过虚拟机来,毕竟虚拟机可以组网。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2016-10-25 · 知道合伙人软件行家
关注
展开全部
值得学习的C语言开源项目
- 1. Webbench
Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。
下载链接:http://home.tiscali.cz/~cz210552/webbench.html
- 2. Tinyhttpd
tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。
下载链接:http://sourceforge.net/projects/tinyhttpd/
- 3. cJSON
cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。
cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。
项目主页:http://sourceforge.net/projects/cjson/
- 4. CMockery
cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。
- 1. Webbench
Webbench是一个在Linux下使用的非常简单的网站压测工具。它使用fork()模拟多个客户端同时访问我们设定的URL,测试网站在压力下工作的性能,最多可以模拟3万个并发连接去测试网站的负载能力。Webbench使用C语言编写, 代码实在太简洁,源码加起来不到600行。
下载链接:http://home.tiscali.cz/~cz210552/webbench.html
- 2. Tinyhttpd
tinyhttpd是一个超轻量型Http Server,使用C语言开发,全部代码只有502行(包括注释),附带一个简单的Client,可以通过阅读这段代码理解一个 Http Server 的本质。
下载链接:http://sourceforge.net/projects/tinyhttpd/
- 3. cJSON
cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。
cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。
项目主页:http://sourceforge.net/projects/cjson/
- 4. CMockery
cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用boost::asio现成的框架不好吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询