socket编程实验指导

socket编程实验指导

ID:41037346

大小:129.50 KB

页数:10页

时间:2019-08-14

socket编程实验指导_第1页
socket编程实验指导_第2页
socket编程实验指导_第3页
socket编程实验指导_第4页
socket编程实验指导_第5页
资源描述:

《socket编程实验指导》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、实验三socket套接字编程实验指导一、Sockets编程基础知识网络编程就是通过计算机网络与其他程序进行通信的程序,Socket编程是网络编程的主流工具。SocketAPI是实现进程间通信的一种编程设施,也是一种为进程间提供底层抽象的机制。尽管应用开发人员很少需要在该层编写代码,但是理解socketAPI还是非常重要的。主要有两点原因:第一,高层设施是构建于socketAPI之上的,它们是利用socketAPI提供的操作来实现。第二,对于响应时间要求较高或运行于有限资源平台上的应用,甚至socketAPI是唯一可用的进程间

2、通信设施。socketAPI出现于20世纪80年代早期,作为BerkeleyUnix(BSD4.2)操作系统程序库来通过进程间通信功能。现在主流操作系统都提供socketAPI。在基于Unix系统中,如BSD、Linux系统,socketAPI是操作系统内核的一部分;在MS-DOS、WindowsOS、OS/2等操作系统中,socketAPI是以程序库形式提供的,如在Windows系统中,socketAPI被称为Winsock。Socket接口规范可以适用多种通讯协议,主要是TCP/IP。TCP/IP是计算机互联最常适用的网

3、络通讯协议,TCP/IP的核心部分由网络操作系统的内核实现,应用程序通过编程接口来访问TCP/IP,应用程序通讯的方式有图3-1所示。应用程序1应用程序2网络编程接口,如Socket网络通讯服务接口,如TCP/IP操作系统,如Unix或者Windows物理通讯介质图3-1:应用程序通信方式TCP/IP使用一个网络地址和一个服务端口号来惟一地标识设备。网络地址标识网络上的特定设备;端口号标识要连接到的该设备上的特定服务。网络通讯的基本模式如下:每一台通讯的主机都有一个本网络环境中惟一的IP地址,一台主机上往往有多个通讯程序存在

4、,每个这样的程序都要占用一个通讯端口。因此,一个IP地址,一个通讯端口,就能确定一个通讯程序的位置。二、Socket通讯连接方式Socket主要有三种通讯方式:流式Socket、数据报Socket和原始Socket。1.流式Socket(SOCK_STREAM)流式套接字提供了基于Unix操作系统的流式I/O的数据传输模式,它仅仅支持10通过可靠的、面向连接的通信,类似于电话系统服务,即每一次完整的数据传输都要经过建立连接、使用连接、终止连接的过程、在数据传输过程中,各数据分组不携带目的地址,而使用连接号(connectID

5、)。从本质上看,连接是一个管道,收发数据不但顺序一致,而且内容相同。Socket编程中,双方进程可以单独创建流式Socket,再在socket之间形成连接。一旦数据作为字符流被写入发送者进程,然后接收者通过socket来读取该数据。面向连接通信能确保数据沿预先建立的连接安全有序地传输。服务器使用两个Socket:一个接收连接;一个发送/接收数据。见图5-2。客户1客户2连接Socket数据Socket服务器连接操作Send/Receive操作图3-2:流式Socket通信2.数据报Socket(SOCK_DGRAM)数据报套

6、接字定义了一种无连接的服务,数据通过相互独立的报文进行传输,是无序的,并且不保证可靠、无差错。类似于邮政系统服务。每个分组都携带完整的目的地址,各分组独立传送。无连接服务不能保证分组的先后顺序,不进行分组出错的恢复与重传,不保证传输的可靠性。UDP协议提供无连接的数据报服务。它使用数据报协议UDP。SocketAPI运行时进程A传输层软件进程ASocketAPI运时行传输层软件图3-3:无连接数据包socket3.原始Socket原始套接字允许对底层协议如IP或ICMP直接访问,它功能强大但使用不便主要用于一些协议的开发。1

7、0三、基于C的面向连接的Socket编程模型TCP协议是面向连接协议,它提供了一系列的数据纠错功能,可以保证在网络上传输的数据及时、无误的传给接收方。因此面向连接协议的Socket编程模型应用最为广泛,基于连接协议的服务是设计客户端/服务器应用程序时的标准。编程模型如图3-4所示。模型中,服务器端的处理:(1)使用socket系统调用,生成一个TCP协议模块与应用程序之间进行通信的套接字;使用bind系统调用指定端口号;(2)使用bind系统调用指定端口号;(3)使用listen系统调用,指定连接接收队列的长度,并等待来自客

8、户端的连接请求。前三步完成了启动服务器程序的工作。一旦listen监听到有客户端的连接,就调用accept接收连接。希望与服务器通信的进程称为客户,客户所运行的计算机环境称为客户端,有时两个概念混用。客户端的处理:(1)使用socket系统调用,打开TCP协议模块与应用程序之间的通信线路;

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。