- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
socket编程实验指导.doc
实验三 socket套接字编程实验指导
一、Sockets编程基础知识
网络编程就是通过计算机网络与其他程序进行通信的程序,Socket编程是网络编程的主流工具。
Socket API是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制。尽管应用开发人员很少需要在该层编写代码,但是理解socket API还是非常重要的。主要有两点原因:第一,高层设施是构建于socket API之上的,它们是利用socket API提供的操作来实现。第二,对于响应时间要求较高或运行于有限资源平台上的应用,甚至socket API是唯一可用的进程间通信设施。
socket API出现于20世纪80年代早期,作为Berkeley Unix(BSD 4.2)操作系统程序库来通过进程间通信功能。现在主流操作系统都提供socket API。在基于Unix系统中,如BSD、Linux系统,socket API是操作系统内核的一部分;在MS-DOS、Windows OS、OS/2等操作系统中,socket API是以程序库形式提供的,如在Windows系统中,socket API被称为Winsock。
Socket接口规范可以适用多种通讯协议,主要是TCP/IP。TCP/IP是计算机互联最常适用的网络通讯协议,TCP/IP的核心部分由网络操作系统的内核实现,应用程序通过编程接口来访问TCP/IP,应用程序通讯的方式有图3-1所示。
图3-1:应用程序通信方式
TCP/IP使用一个网络地址和一个服务端口号来惟一地标识设备。网络地址标识网络上的特定设备;端口号标识要连接到的该设备上的特定服务。网络通讯的基本模式如下:每一台通讯的主机都有一个本网络环境中惟一的IP地址,一台主机上往往有多个通讯程序存在,每个这样的程序都要占用一个通讯端口。因此,一个IP地址,一个通讯端口,就能确定一个通讯程序的位置。
二、Socket通讯连接方式
Socket主要有三种通讯方式:流式Socket、数据报Socket和原始Socket。
1.流式Socket(SOCK_STREAM)
流式套接字提供了基于Unix操作系统的流式I/O的数据传输模式,它仅仅支持通过可靠的、面向连接的通信,类似于电话系统服务,即每一次完整的数据传输都要经过建立连接、使用连接、终止连接的过程、在数据传输过程中,各数据分组不携带目的地址,而使用连接号(connect ID)。从本质上看,连接是一个管道,收发数据不但顺序一致,而且内容相同。
Socket编程中,双方进程可以单独创建流式Socket,再在socket之间形成连接。一旦数据作为字符流被写入发送者进程,然后接收者通过socket来读取该数据。面向连接通信能确保数据沿预先建立的连接安全有序地传输。
服务器使用两个Socket:一个接收连接;一个发送/接收数据。见图5-2。
图3-2:流式Socket通信
2.数据报Socket(SOCK_DGRAM)
数据报套接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。类似于邮政系统服务。每个分组都携带完整的目的地址,各分组独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。UDP协议提供无连接的数据报服务。它使用数据报协议UDP。
图3-3:无连接数据包socket
3.原始Socket
原始套接字允许对底层协议如IP或ICMP直接访问,它功能强大但使用不便主要用于一些协议的开发。
三、基于C的面向连接的Socket编程模型
TCP协议是面向连接协议,它提供了一系列的数据纠错功能,可以保证在网络上传输的数据及时、无误的传给接收方。因此面向连接协议的Socket编程模型应用最为广泛,基于连接协议的服务是设计客户端/服务器应用程序时的标准。编程模型如图3-4所示。
模型中,服务器端的处理:
(1)使用socket系统调用,生成一个TCP协议模块与应用程序之间进行通信的套接字;使用bind系统调用指定端口号;
(2)使用bind系统调用指定端口号;
(3)使用listen系统调用,指定连接接收队列的长度,并等待来自客户端的连接请求。
前三步完成了启动服务器程序的工作。一旦listen监听到有客户端的连接,就调用accept接收连接。
希望与服务器通信的进程称为客户,客户所运行的计算机环境称为客户端,有时两个概念混用。
客户端的处理:
(1)使用socket系统调用,打开TCP协议模块与应用程序之间的通信线路;
(2)使用connect系统调用,指定IP地址和端口号,和服务器相应的服务应用程序建立TCP协议的连接请求;
客户端和服务器程序在建立连接后,使用send和recv调用完成数据的发送和接收工作。等待数据传送
您可能关注的文档
- office文档恢复基础之office文件格式1.doc
- Old Man Myths and Realities.doc
- Olympus ZD 60mm f2.8微距镜头和FL-600R无线闪灯系统测评.doc
- On the company.doc
- One-year prognosis in sick-listed low back pain patients with and without.doc
- Opening Remarks to the China-Australia Media Forum.doc
- opexstyle3.doc
- Outlook的命令行参数.doc
- P&G笔试测试题.doc
- P2X3受体论文:黄芩苷对颈部交感神经节细胞P2X_(2-3)受体介导心肌缺血引发交感兴奋反射的作用研究.doc
- Solutions to Chapter 2 Financial Markets and Institutions.doc
- SOM Chapter 9.doc
- sources.list更新方法.doc
- SPE,Microsoft Word 文档.doc
- Special operations in the process of examination equipment manufacturing files.doc
- specialized english教案.doc
- SP行销概念.doc
- SQL 2008下载地址以及全新安装详细过程。.doc
- sql数据同步问题处理.doc
- SSCI收录期刊列表(社会科学引文索引).doc
最近下载
- 老年卵巢癌患者围手术期管理专家共识(2024年版).pptx VIP
- 消化系统常见症状 (1).消化系统常见症状.ppt VIP
- GA 1551.6-2021CN石油石化系统治安反恐防范要求 第6部分:石油天然气管道企业.pdf
- 巨人 通力电梯NOVA GKE调试说明书故障代码GPN15 GVN15_GKE - 51668093D01-2022.pdf VIP
- 消化系统常见症状.pptx VIP
- WP2.3N柴油机维修手册.pdf VIP
- 智能世界2035报告.docx
- 文言文节奏划分.pptx VIP
- 《DB45T 1625—2024 地质灾害危险性评估规程》.docx VIP
- 小学体会作者情感.ppt VIP
文档评论(0)