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

来源 :中国科技博览 | 被引量 : 0次 | 上传用户:pboss
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:在当今社会,网络已经成为了我们生活、生产中必不可少的一个要素。 因此,对于任何一个操作系统而言,对于网络的支持都是至关重要的。该文研究了 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为客户端程序,实现较为简单。首先调用connect 函数来连接指定的服务器和端口,然后通过write 函数和read函数来实现与服务器之间的通信。
  使用gcc编译server.c和client.c, 获得可执行文件server和client。
  [root@localhost src]#gcc server.c -o server
  [root@localhost src]#gcc client.c -o client
  先执行 server,然后运行 client。 ./server portnumber& (portnumber 随便取一个大于 1204 且不在/etc/services 中出现的号码 就用8888好了),然后运行 。
  [root@localhost src]# ./server 10284
  [1] 13583
  [root@localhost src]# ./client localhost 1028
  Server get connection from 127.0.0.1 I have received: Welcome to HNCST!
  4 结束语
  在 Linux 系统环境之下,应用程序要与下层协议完成通信,需要借助 Socket 接口,本文研究了 Socket 接口的基本理论,介绍了在 Linux 环境下的数据流套接口,数据报套接口以及原始套接口。 在此基础上文章介绍了 Linux 环境下的 Socket 网络通信模型,以客户端 / 服务端架构模型为例研究了该模型实现过程中的 Socket 函数的调用。 希望通过本文的研究能够为 Socket 接口在 Linux 系统环境下的网络通信程序的设计和实现提供一定的参考和借鉴。
  参考文献:
  [1] 戴缘生,孙苓生;一种基于嵌入式Internet的新型智能仪表的设计[J];电气应用;2005年03期.
  [2] 吴涛 , 黄心汉 , 黄振宇 . 基于 Linux 的多移动机器人通信的原理与实现方法 [J]. 电工技术 ,2003(12).
  [3] 李海林,王美琴,高振明;基于Linux的802.11b无线局域网数据包捕获方法[J];计算机应用研究;2004年12期.
  [4] 莫足琴 , 欧阳艳阶 , 马康 . 基于 Java Socket 多客户端并发通信聊天程序的设计与实现 [J]. 电脑知识与技术 ,2008(20).
其他文献
摘要:色彩作为电影艺术中不可或缺的重要因素,在电影的长期发展中以其独特的形式美和表意性得到众多导演和观众的青睐。以色彩在电影中的运用为基本,浅析色彩是如何发挥其作用,并对中西多部电影进行了分析,得出了色彩具有增强电影的感官美和表意的重要作用的结论。  关键词:电影 色彩 形式 表意  【分类号】:J904  著名摄影师斯托拉罗说过:“色彩是电影语言的一部分,我们使用色彩表达不同的情感和感受,就像运
期刊
摘要:南水北调中线干线三级管理处的有效运行是中线输水运营的重要保证,本着“授人与鱼,不如授人以渔”的原则,我们没有详述运行机制的具体行文,而是就引发具体行文的理念做了介绍,以此为文。  关键词:运行机制 制度 有效性 优雅  【分类号】:TV512  方城管理处即南水北调中线局河南直管局三级管理单位。对基层单位运行机制的探索是整个南水北调工程运营的重要组成,我们介入并梳理了方城管理处前期的建设和运
期刊
摘要:海东市位于青海省东部、地处青藏高原向黄土高原的过渡地带,自然景观绮丽多姿,发展生态旅游先天条件好,科学规划、理顺体制、、转观念、树品牌、大力发展生态农业。  关键词:海东生态旅游发展方向  【分类号】:F592.7;F326.27  参考文选:海东市旅游规划  海东市位于青海省东部、地处青藏高原向黄土高原的过渡地带,是我国内地通向青藏高原的要地,素有青海“东大门”之称。全市区域面积1.32万
期刊
摘要:随着建筑产业的迅速发展,国家提出“绿色建筑”的指导方针,“节水”是重要的一个方面,本文主要简述节水龙头在绿色建筑中的应用进行分析。  关键词:节水龙头;绿色建筑  【分类号】TU991  0 引言  水,生命之源,也是维系生命的根基。但,经济及人口基数的膨胀发展,带动了建筑产业的大规模发展,同时加上城市扩张的加速,导致现有资源、能源不可逆转的消耗,进而引发了环境恶化,水资源匮乏,因此国家果断
期刊
摘要:结合城郊煤矿21205工作面矿压实测资料,观测了巨厚松散层下薄基岩区域矿压显现规律特征,分析了薄基岩矿压显现机理,提出了工作面过薄基岩区域应采取的安全技术措施。  关键词:巨厚松散层;薄基岩;矿压显现;控制措施  【分类号】:TD325  0 前言  城郊煤矿巨厚松散层薄基岩工作面开采属于特殊地质条件的开采问题。巨厚松散层主要由第四系和第三系的松散层组成,其中含有多层含水层。当这些含水层位于
期刊
摘要:随着我国对科学技术的探究和发展,生物科学与技术研究成为21世纪以来人类关注的重点话题,其发展与人们的生活息息相关,改变着人们的生产活动和生活面貌。随着生物科学技术的不断成熟,生物科学逐渐运用于现代医疗领域、农学领域和工业领域,它对基因遗传和生物化学的研究也具有重大意义。因此,重视生物科学的发展与应用,是关乎生活的重要话题。本文从生物科学的应用、研究成果进展和生物科学技术对社会的影响三方面对生
期刊
摘要:生态文明是一场涉及人们的生活生产方式的新型文明形态,在中国的各种经济、政治及文化活动中发挥重要的作用,影响着国民经济的各行各业的发展。生态文明的提出,完全打破了人们传统的生存方式及价值追求。随着社会的进步及人们生活水平的不断提高,人们对于生态这个概念更是趋之若鹜,更加地崇拜和向往。其中林业的发展也是按照生态文明的要求走的。  关键词:生态文明;林业;可持续  【分类号】:F326.2  一、
期刊
摘要:在高速公路的建设中如果不解决好膨胀土问题,就会使公路工程在竣工通车后出现一系列问题,影响交通运行,甚至威胁到人们的生命财产安全。本文就高速公路工程中膨胀土路基的施工相关情况及质量控制措施进行探讨。  关键词:高速公路;膨胀土路基;处理方式  【分类号】U215.1  一、前言  长期以来,膨胀土都影响着建筑工程的施工质量和正常开展,由于膨胀土具有边坡浸水后强度下降、见水膨胀、失水收缩等特性,
期刊
摘要:配电网是电力系统发电、输电和配电三大系统之一。电力公司通过配电网实现产品销售,向广大电力用户提供电能。这场变革使电力公司面临新的挑战,不得不采取新的策略,新的技术和管理措施,转变经营理念,增强市场竞争实力。  关键词:配电网 配电自动化 发展动向  分类号 :TM7 TP3  一、配电自动化简介  配电自动化指:利用现代电子技术、通信技术、计算机及网络技术与电力设备相结合,将配电网在正常及事
期刊
【摘要】随着电力事业进程的不断加深,电力企业也得到快速的发展。电力营销作为电力企业经营发展中的重点,为了紧跟时代发展需要,电力营销方式也在不断发生变化,这就对电力营销管理提出了更高的要求,实现精细化管理成为了电力营销管理发展的必然趋势。  【关键词】电力营销;精细化管理  【分类号】: F252  0 引言  随着时代的发展,传统的电力营销管理方式已经无法满足电力企业经营发展需要,实现精细化管理不
期刊