基于 Socket 网络通信在 Linux系统中应用.docVIP

基于 Socket 网络通信在 Linux系统中应用.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于 Socket 网络通信在 Linux系统中应用

基于 Socket 网络通信在 Linux系统中应用   摘要:在当今社会,网络已经成为了我们生活、生产中必不可少的一个要素。 因此,对于任何一个操作系统而言,对于网络的支持都是至关重要的。该文研究了 Socket 接口以及其在 Linux 环境下的通信网络模型。 希望通过本文的研究,能够为 Socket 在 Linux 环境下的应用提供一定的参考和借鉴。   关键词: Linux 环境; Socket ;网络通信   【分类号】TP316.81   1 引言   Linux是一个免费的类Unix操作系统,最初是由芬兰人Linus Torvalds于1991年开发。 Linux操作系统具有良好的稳定性以及强大的网络功能。Linux 系统平台被广泛应用到网络通信程序的开发中。网络通信编程要用到网络套接字(Socket)。Socket是一种描述符,它是网络通信的基本操作单元。数据传输是一种特殊的 I/O,提供了不同主机间的进程互相通信的端点,这些进程在通信前各自建立一个 Socket,并通过对Socket 的读写操作实现网络通信的功能。   socket通常也称作套接字,应用程序通常通过套接字向网络发出请求或者应答网络请求。以J2SDK-1.3为例,Socket和ServerSocket类库位于java .net包中。ServerSocket用于服务器端,Socket是建立网络连接时使用的。在连接成功时,应用程序两端都会产生一个Socket实例,操作这个实例,完成所需的会话。对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别。不管是Socket还是ServerSocket它们的工作都是通过SocketImpl类及其子类完成的。   2 Socket 接口概述   当前的网络应用中, Client 或者 Server 这两种模式是进行通信的双方使用频率最高的交互模式,在通常情况下,监听或者连接分别是客户以及服务器模式所采用的实现方式。 借助服务器端的应用程序在一个端口可以对发送至服务器的请求进行监听,换句话说,一般情况下,服务器的进程始终是出于休眠状态的,除非有客户向该服务器发送了一个连接的请求,在服务器一个端口接收到来自于客户的请求时,服务器线程就会从休眠状态转为工作状态,根据客户的具体请求做出相应的反应,提供客户所需要的服务。   Socket 接口是使用标准系统文件描述符与其他程序进行通信的一种非常重要的方式。 它的工作方式是由一个套接字描述作为一个通信连接的端口,不同的端口之间可以通过套接字来完成信息的发送和接收。上文已经描述了 Linux 系统能够支持多种网络协议,而由于不同的协议其工作的方式和地址格式都不相同,而对于不同的网络协议而言,使用用一个网络地址的格式,就可以称之为一个协议地址族,表 1是Linux 支持的常见的网络协议地址族。   在 Linux 环境下,能够将套接字地址族抽象成一个统一的套接字 Socket 接口,在该接口的支持下能够完成应用程序的接口的开发。 具体的,在 Linux 环境下 的 Socket 接 口 主 要 有 如 下 几 种 : 1) SOCK_STREAM , 数 据 流 套 接 口 ; 2) SOCK_DGRAM ,数据报套接口; 3) SOCK_RAW ,原始套接口。   表 1 套接字地址族   3 Socket 网络通信模型   3.1 Linux 环境下基于 Socket 的网络通信模型   从目前来看,主流的网络通信模型主要有两种,其一是 C/S 架构及,客户端 / 服务端架构;其二是 B/S 架构,及浏览器 / 服务端架构。 本文研究的是客户端 / 服务端架构,在该架构下的 Socket 网络通信模型需要完成客户程序编写和服务程序编写。   客户端程序的编写步骤如下:创建 Socket 接口 → 与远程服务程序连接 → 读写数据 → 终止连接。   服务程序的编写步骤如下: 创建 Socket 接口 → 绑定 bind 接口 → 设置 Socket 接口为监听模式 → 接受请求 → 读写数据 → 终止连接。   3.2 Socket 函数的调用   通过设计客户机/服务器模式程序来进一步深入分析socket 通信原理。server.c 和 client.c 使用流套接字将服务器的信息传递给客户机。server.c为服务端的实现。首先创造建套接字,通信域为PF_INET,然后调用bind 函数将指定的端口等到信息与套接字关联起来,调用 listen 函数实现对指定端口的监听。当有连接请求时,通过调用accept函数建立与客户机的连接,最后调用 write 和 read 函数来与客户机进行信息交换。client.c为客户端程序,实现较为

您可能关注的文档

文档评论(0)

fangsheke66 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档