想用C++写一个小型的网络库(可以跨平台),但是还有点疑问,请高手进来指点~~~

王者荣耀zhou 2008-02-22 12:00:32
小弟不才,失业在家很无聊,想用C++写一个小型的网络库,同时希望能够很容易地实现跨平台,但是由于历史原因,我只对windows操作系统熟悉,其他平台一无所知,所以我的想法是用纯C++写上层,底层用设计模式中的适配器模式(Adapter model),只是提供接口,然后在具体的平台上用不同的方式来具体实现功能方面的东西,当然了,目前我只能用win32 Socket API来实现了,不知道是否可行~~~

另外我还有一点问题,就是比如win32 socket中的重叠IO或完成端口模式都需要在IO完成后通知上层进行IO处理,那么我在实现网络库的时候应该如何设计使得上层得到通知呢?关键是实现方式要通用,不能具体局限于一个平台,不知道观察者模式是否可以实现?在对非常多个客户端进行管理方面如何设计才能更加方便呢?而且在windows平台上可以用DLL来实现程序,如果要进行跨平台的话这个DLL是否通用,在linux上也存在DLL吗? 如果是TCP如何设计协议呢?

~~~~~望各位高手来讨论讨论~~

还有就是如何设计能够使得系统更具开放性,以后可以不断地增加功能,以前有搞过网络库的朋友请奉献一下经验~~

我也知道有个ACE网络通信库,但是太庞大了,加上马上准备考公务员,没有时间看了,等考完了一定要买本书来好好参考,对ACE有了解的朋友也可以来灌灌水啊~~~
...全文
416 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
DDGG 2009-02-17
  • 打赏
  • 举报
回复
不用重造轮子,但要知道轮子的结构、性能,最好自己能修。
lifengjiangol 2008-09-17
  • 打赏
  • 举报
回复
再写string类,好像没有必要吧
hwsts2 2008-03-01
  • 打赏
  • 举报
回复
建议借鉴ACE,初看起来,很庞大,那是因为你看到的都是代码,而现在出的基本ACE书都是从代码实例开始的

事实上如果你读几次ACE的框架代码之后,就好了,很快就把它看小
僵哥 2008-02-29
  • 打赏
  • 举报
回复
娱乐和学习而已啊,现在中国的程序员真是完了,ACE不也是人写出来的吗,就算我写的不实用,但并不代表没有价值啊~~
========
就你这态度,写得出来,那也仅仅只是一个“实现”
王者荣耀zhou 2008-02-29
  • 打赏
  • 举报
回复
娱乐和学习而已啊,现在中国的程序员真是完了,ACE不也是人写出来的吗,就算我写的不实用,但并不代表没有价值啊~~
hslinux 2008-02-28
  • 打赏
  • 举报
回复
想用C++写一个小型的网络库?????

免了吧兄弟,无聊就去学习ACE就可以了,ACE够你吃的了。吃完还有TAO,还有。。。。。。

^_^吃完再说。
lemon_wei 2008-02-24
  • 打赏
  • 举报
回复
晕呀, 练手还可以,实用的还是不要搞了,做出来了也只能自已用,一般别人是不敢用的。
再说跨平台的ASIO不好吗?都快成标准库了
僵哥 2008-02-22
  • 打赏
  • 举报
回复
建议楼主,好好地为考公务员做准备吧,不要想太多.如果你对Windows以外的平台毫不了解,就去写跨平台的网络库,这几乎是不可能的.除非放弃如重叠I/O,I/O完成端口,Epoll等所谓高性能I/O模型的支持.除ACE以外还有很多网络库,比如boost::asio.如果将ACE抽离出来,只要网络I/O的部分也并不大.
greatws 2008-02-22
  • 打赏
  • 举报
回复
Winpcap就是跨平台而且是开源的,你可以看下www.winpcap.org
rediscovery 2008-02-22
  • 打赏
  • 举报
回复
WinPcap: The Windows Packet Capture Library

他的主要功能是捕获数据包吧?

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧