- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
跨平台协议无关网络类库的设计与实现
121蒋锦鹏,包丛笑,李星
(1.清华大学电子工程系,北京10084;2.清华大学网络中心,北京10084)
摘要:虽然socketAPI是目前网络编程接口的事实标准,但它也存在一些的不足:接口复杂;使用不方便;协议无关性差;跨平台能力不强。针
对这些问题,研究了跨平台和协议无关网络编程技术,并使用C++实现了一个跨平台协议无关网络类库。它可以同时支持Windows和Linux操作
系统,支持以协议无关的方式进行网络编程,支持单播和ASM/SSM组播,支持UDP和TCP,支持基于TCP通信的标准输入输出流。通过在一个
实际网络测量系统中的应用,验证了本类库达到了跨平台性和协议无关性的设计目标。关键词:跨平台;协议无关;网络编程接口;输入输出流;
类库
中图分类号:TP393文献标识码:A
DesignandImplementationofaCross-platformProtocol-
independentNetworkClassLibrary
121JIANGJin-peng,BAOCong-xiao,LiXing
(1.DepartmentofElectronicsEngineering,TsinghuaUniv.,Beijing100084,China;
2.NetworkCenter,TsinghuaUniv.,Beijing100084,China)
Abstract:AlthoughthesocketAPIisthedefactstandardofnetworkprogramminginterfacenowadays,itsuffersfromsomeshortagesas
highcomplexityofinterface,poorsupportforprotocol-independentprogramming,andlowcross-platformcapability.Concerningthese
problems,cross-platformandprotocol-independentnetworkprogrammingtechniquesarestudied.Furthermore,across-platform
protocol-independentnetworkclasslibraryisimplementedwithC++,whichsupportsbothWindowsandLinux,protocol-independent
networkprogramming,unicast,ASMandSSMmulticast,supportsbothUDPandTCPtransmission,andstandardI/Ostreambasedon
TCPcommunication.Itvalidatedthatthisclasslibraryhasaccomplishedthecross-platformandprotocol-independentdesigngoal
throughapplicationinapracticalnetworkmeasurementsystem.
Keywords:cross-platform;protocol-independent;networkAPI;iostream;classlibrary
用。setsockopt和getsockopt接口虽然带来了很强的通用性和可1引言
[1]扩展性,但使用起来非常不方便不直观。1983年socketAPI随着BSD4.2系统一起发布,发展到现
(2)协议无关性差。编写同时支持IPv4和IPv6的简单代码在已经成为网络编程事实上的标准。在几乎所有主要操作系统
仍然是一件需要深入理解socketAPI和细心编程的麻烦工作。上,网络编程的底层接口都源自socketAPI。许多高级编程语稍有不慎就会写出协议相关的代码。言(3)不完全跨平台。(如Java或C#)都在自己的标准库中加入了对网络编程的支持,尽管各种操作系统的但这些支持通常仅仅是对底层socketAPI的简单封装,并没有引socketAPI都源自入革命性的变化。在二十几年的发展历程中,socketAPI经历了
文档评论(0)