- 1、本文档共46页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【计算机网络课程课件@中科大】网络编程指南,中科大量子力学课件,中科大蔡刚课件,中科大课件,中科大热学课件新浪,中科大精品课程,中科大课程表,中科大课程流,中科大课程时间表,中科大网络课程
Beej‘s 网络编程指南
介绍
• Hey! Socket 编程让你沮丧吗?从man
pages 中很难得到有用的信息吗?你想跟
上时代去做一做Internet 程序,但是为你
在调用connect() 前的bind() 的结构而愁
眉不展?…
读者
• 这个文档是写成一个指南,而不是参考
书。如果你刚开始socket 编程并想找一
本入门书,那么你是我的读者。这可不
是一本完全的socket 编程书。
平台和编译器
• 这篇文章中的大多数代码都在一台Linux
PC 上用GNU 的gcc 成功编译过。而且
他们在一台HPUX 上用gcc 也成功编译
过。但是注意,并不是每个代码片段都
独立测试过。
目录
• 什么是套接口?
• Internet 套接口的两种类型
• 网络理论
• struct--要么了解他们,要么等异形入侵
地球
• Convert the Natives!
• IP 地址和如何处理他们
目录
• socket()--得到文件描述符!
• bind()--我们在哪个端口?
• connect()--Hello !
• listen()--有人给我打电话吗?
• accept()--Thank you for calling port 3490.
目录
• send() 和recv()--Talk to me, baby!
• sendto() 和recvfrom()--Talk to me,
DGRAM-style
• close() 和shutdown()--滚开!
• getpeername()--你是谁?
• gethostname()--我是谁?
目录
• DNS--你说“白宫”,我说
00
• 客户-服务器背景知识
• 简单的服务器
• 简单的客户端
• 数据报Socket
目录
• 阻塞
• select()--多路同步I/O ,酷!
• 参考资料
• Disclaimer and Call for Help
什么是socket?
• 你始终听到人们谈论着socket,而你不知道他的确切含义。那么,现在我告诉你:他是使
用Unix 文件描述符(fiel descriptor) 和其他程序通讯的方式。
• 什么?
• Ok--你也许听到一些Unix 高手(hacker) 这样说:“呀,Unix 中所有的东西就是文件!”那个
家伙也许正在说到一个事实:Unix 程序在执行任何形式的I/O 的时候,程序是在读或者写一
个文件描述符。一个文件描述符只是一个和打开的文件相关联的整数。但是(注意后面的话),
这个文件可能是一个网络连接,FIFO ,管道,终端,磁盘上的文件或者什么其他的东西。
Unix 中所有的东西是文件!因此,你想和Internet 上别的程序通讯的时候,你将要通过文件
描述符。最好相信刚才的话。
• 现在你脑海中或许冒出这样的念头:“那么我从哪里得到网络通讯的文件描述符呢,聪明
人?”无论如何,我要回答这个问题:你利用系统调用socket() 。他返回套接口描述符
(socket descriptor),然后你再通过他来调用send() 和recv() 。
• “但是...”,你可能现在叫起来,“如果他是个文件描述符,那么为什么不用一般的调用read()
和write() 来通过套接口通讯?”简单的答案是:“你可以使用一般的函数!”。详细的答案
是:“你可以,但是使用send() 和recv() 让你更好的控制数据传输。”
• 有这样一个事实:在我们的世界上,有很多种套接口。有DARPA
您可能关注的文档
最近下载
- 幼儿园大班5以内的加法PPT课件.ppt
- 上报劳动模范会议纪要、公示、简介、主要事迹.docx
- 八年级数学平方差公式20题(含答案).doc
- 皮肤银屑病慢病管理.pptx VIP
- 2024年二级注册建筑师题库附答案(能力提升).docx
- (2025春新改)人教版七年级数学下册全册PPT课件.pptx
- 小学数学一年级下册《认识平面图形》教案教学设计.doc VIP
- [西安]2024年陕西西安浐灞国际港公办学校高层次教育人才招聘笔试历年典型考点(频考版试卷)附带答案.docx VIP
- 建筑工程图集 15G108-6:《门式刚架轻型房屋钢结构技术规范》图示.pdf VIP
- 【40套试卷合集】河北省石家庄市2019-2020学年英语九上期中模拟试卷含答案.pdf
文档评论(0)