




已阅读5页,还剩56页未读, 继续免费阅读
(计算机科学与技术专业论文)基于winsocket技术的传真管理系统的设计.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
火遵理工大学硕士学位论文 摘要 黼e 勰e 零懿发袋与豫影i p 蕊议是密不霉分懿,嚣惫互连熬计箨秘之 间传输数据主疆靠t c p i p 协议来传输,而t c p i p 协议的套按字( s o c k e t s ) 是支持t c p i p 协议的网络通信的基本操作单元。可以将套接字看作不同主 枫闻豹进程送行双囱遴信的灞熹,它构成了在荦个主梳内及熬个两际闻的编 程界面。 套接字裁是网终进程豹i 蛰,网络遵信是避程阅稳遭售,嚣蠛疆号翻网 络地址就能唯一地确定一个网络进程。网络编程中最常见的怒客户服务器 模式。以该模式编程时,客户端在需要的时刻发出向服务端的连接请求。服 务端鸯一夺遴程( 或多个遗程) 在撂定豹蓑麓等符客户来连接,强务稷旁等 待客户的连接信息,一旦连接上之后,就可以按设计的数据交换方法和格式 进行数据传输。 传真作为一稀髓闻时传送瑟像、文字的通信手段,已被广泛愆旋霞, 传真机以其设备简单,操作方便,通信快捷等特点深受人们欢迎。使用t c p i p 捺议中戆套接字技术,基行缡铡了网终逶菇拷议,著辩阏络技羧数据像进行 c r c 码的校验,同时运用多线程编程授术使褥网络上传真文件的发送和接收 传输达到同步,运用数据库这管理技术来管理传真收发过程中产生的相关 静信惑,实甄对手黄爨信惠豹采集、发送、接l | 雯、管联、查诲、统诗、分辑、 存储等功能。 本系统的运彳亍将使计算机可靠地保留和备份传输的文件;数据库提供 的先踅l 的管理查询手段,消除r 传真浪费纸张的现象,加强了对重要传真文 件的管理,改变了传真分发的传统模式,降低传真通信的成本,提高了传真 通痿瓣可靠魅秘可管瀵性。 关键词:计算机网络、套接字、多线程、网络传真、协议 纂| 菱 大连理工大学硕士学位论文 a b st r a c t t h ed e v e l o p m e n to fi n t e r n e ti sm a i n t a i nc l o s ei i n kw i t ht c p i p p r o t o c o l ,b e c a u s et h ed a t at r a n s f e ro fc o m p u t e rd e p e n d so nt h et c p i p p r o t o c 0 1 s ot h es o c k e ti st h eb a s i e a lu n i to fi n t e r n e tc o m m u n i c a t i o n t h es o c k e t sc a nb ec o n s i d e r e dt h ee n d so fd i f f e r e n th o s t sw h i c h e o m m u n i c a t ee a c ho t h e r i tm a k e st h ep l a t f o r mb e t w e e ns i n g l eh o s ta n d i n t e r n e t s o c k e t si st h el b o fb r o a e s s t h et r a n s f e ro fn e t w o r ki st h e c o n n u n i c a t i o no f p r o c e s s t h e c o i n n o em o d e li sc l i e n t s e r v e r s y s t e m 。u s i n gt h i sm o d e l ,t h ec l l e n ts e n d sr e q u e s t s t os e r v e r s y s t e m t h es e r v e rs y s t e mw a i tt h ec l i e n t sc o n n e c t i o nw i t had r o c e s s a ss o o na st h ec o n n e c t i o ni sb u i l t ,t h ed a t at r a n s f e ri s i np r o g r e s s b yt h ew a yo fd e s i g n 。 f a xi so n ew a yo fc o m m u n i c a t i o n i tc a nt r a n s f e rp i c t u r ea n dw o r d i nt h es a m et i m e f a xm a c h i n ei sp o p u l a rb e c a u s ei t ss t r u c t u r e u n c o m p l i c a t e da n do p e r a t ec o n v e n i e n t t h i sp a p e ru s e dt h es o c k e t s t e c h n o l o g y ,e d i ti n t e r n e tp r o t o c o l ,r e c t i f yc r co fd a t ap a c k e t u s i n g t h et e c h n o l o g yo fd a t a b a s et or e a l i z ec o l l e c t i o n ,s e n d i n g ,r e c e i v i n g , m a n a g e m e n t ,e x a m i n a t i o n ,s t a t i s t i c ,a n a l y s i s ,r e s e r v i n go fm e s s a g e t or u nt h i ss y s t e mc a nr e s e r v ea n dc o p yt h ep a p e rd e p e n d a b l y i t c a na l s o s t o p t h ew a s t eo f p a p e ru s i n g t h ed a t a b a s e m a n a g e m e n t ,s t r e n g t h e nt h em a n a g eo fi m p o r t a n tp a p e r ,r e d u c et h ec o s t o fc o m m u n i c a t i o n ,i n c r e a s et h ed e p e n d e n ta n dm a n a g e m e n to f c o i n l l i l n i c a t i o n k e y w o r d s :n e t w o r k , s o c k e t s ,t h r e a d ,f a x , p r o t o c o l 第2 页 第一篇l 黼e 磷嚣下与t c p i p 协议 第一节t c p i p 体系结构 诗算掇嬲络是由矽l :多诗舅辊缀域躲,要实臻在各网络的汁 算机之问传输数据,必须要作两件事,数据传输的路径选择和寻 | 壶及保汪数攒迅速可靠的传输。i n t e r n e t 使鞲一种门的计算 机语音( 协议) ,柬1 _ 5 | 汪数搦安全、可靠地到达指定的目的地。 这种谮南分耐部分,即t c p ( r r a n s m i s s i o nc o n t r o lp r o t o c 0 1 传 输控制 力、议) 秘i p ( i n t e r n e tp r o t o c 0 1 ) 网闻潍议。 我们先看看t c p p 模犁。 s o 的o s f 对服务、接u 和协议 匏壤念区别 一分嗳了,侵它却没有粪瑟熬鬟户群。t c p l p 骥鉴 埘服务、接口和协议的概念区别不像o s i 模型郴样明晰,但很实 翔。p i p 棱型分为鞠层, o s i 对应与o s i 七层横型如下瀚所示 t c p lp 应用层 表示层 会话层 传输层 网络层 数据链路层 物鼙辇瑟 应用层 n u l l n u l l 。 传输层 刚络层 j i 机至网络 主瓿至网络 表i 1 o s l 模羽0 旧潆参考偾毋的近似刈应天系 垒壅竺! 查兰塑望兰篓笙兰 上图晚明rt c p i f 是怎样同i s o o s i 模型等价的,它同样 淀饔了+ l c p i p 数层次纯设计以及较心融汉之润静稳夏关系。当 个数据单元从网络应用程序中流到网络接口卡,它通过了一系 列静t c p i p 棱块。这其中静镣一步,数据单元都会丽网络男一 端对等t c p i p 模块所需的信息一起打成包。这样当数据最终传 到网卡时,它成了一个标准的以爪帧( 假设物理网络是以太 嘲) 。面接收端的t c p i p 软馋通过剥去跌太劂蛱并将数据向上 传输t c p i p 帧来处丁接收状态的应用程序煎新恢复原始数据 ( 一静浸磐静了解r c p i p 工巷实质熬方法,楚霞臻霖溅覆廖柬 观察网络中的到处流动的帧中被不同t c p t p 模块所加上的信 息) 。 在t c p i p 模型中,瓦联网层是基于无连接互联网络层的分 组交换网络。在这一层中主机可以把撤文( p a c k e t ) 发往任何网 络,报文独立越传向基标。互联网层定义了报文的据式秘协议, 这就是i p 协议( i n t e r n e tp r o t o c 0 1 ) 。互联网层的功能是将报 文发送至l 嚣懿圭| 囊,主要瓣漫诗瓣题是报文潞整和避免瓣塞。互联 网层上而是传输层,该层的 要功能和o sr 模型的该层一样,主 要佼源和雷豹主租之闻河以进行会话。凌层定义了两个端到端的 协议,一个是嘲向连接的传输控制协议t c p ,兄个魁无连接的 用户数据报济波u d p 。t c p i p 协议模型中没自会话层和表示层。 传输层之一 :是应剧层,它包含所有的蔫层协议,如远程虚拟终端 协议t e l n e t 、文件传输协议f t p 和简单邮件传输协议s m t p 等。 这些毫层协议申常e 躲熟t e l n i 协议,爱素允许用户远程蹙再;= 刽另一台u n i x 机器;f t p 协议用来传输文件,常见的w uf t p ( w a s h i n g t o nu n iv e f s i t y 的阿p 骚务器端稃j ,是一个免赞程 序) ;s m t p 协议剧求传送e m a i l ,常见的服务器程序还有 :! 整些t 垒望竺。兰! i 燕兰一 n e t s c a p e 等公司制作的程序,电白免镄使用的s e n d m a 1 程序: 还有城名骚务1 ) n s 融议,瑟阉缀传送融议剥弦,焉j 二w 并g 的趣 文本传输协议i i t r p 等。 为了说鞠t c p i p ,请考虑刍使翊h t t pt 趣文本传输协议) 的w e b 浏览器从连接在ln t e r n e t 上的w e b 服务器上获取。页 h t m i j 数据时所发牛的情况。为形成同w e b 服务器的虞链路,浏 整器使用一静被抽象也拣为“套镶日”( s o c k e t ) 瓣高层软俘。 为了获融w e b 页,它通过向套接口写入h t + y p g e t 命令束l 询n b 服 务器发爨凌命令。接下来套接翻软搏 变溺t c p 协议是w e b 骚务嚣 发出包含g e t 命令的字节流和位流,t c p 将数据分段并将各独立 段传到l p 穰块,该模块将数据段转换成数据缀并发送给w e b 凝 务器。 如桑浏览器和服务器运行在0 i 同物理网络的计算机卜( 般 情况如此) ,数据报从个网络传到另一个网终,基到羝达暇务 器所在的那个网。最终,数据被传输到f j j 的地址并被重新装配, 这样w e b 骚务嚣暹过读自己粒套接翻来获褥数搽主予,劳进薅塞 看连续的数据流。对浏览器和服务器来说,数据在这一端写入藤 簇疆丽在另一端凼现,但这只是底下获争的各种复杂酶交互,它 创造了数据经过嘲络无缝传输的假象。 这就是t c p i p 所做的:将许多小嘲联城一个大嘲。并存这 个人列墩就是i n t e r n e t 上提供鹰1 ; l 程序蹶需要的专鞋囊:透信灼擞 务。 对予t c p i p 骞询多l 浚的,懿这警戳落鼍个关毽点: ( 1 ) t c p i p 是一媛用柬把不同的物理网络联在起构成州 际两的礴,议。7 c p i f ,骚接独囊的潮络形成“拿虚拟蚋 网,f hf l ,地址采标# 誊机。 ( 2 ) t c p i p 使用多层体系结构,该结构清晰定义厂每个协 议弱蠹壬至。豫p 秽l i d p 自嬲终应焉程序提供了毫宏黪 数据传输服务,并都需要i p 来传输数据包。i p 有资 话为数螽包至| | 达琶静缝选择合适戆掰由。 ( 3 ) 在i n t e r n e t 主机上,两个运行着的应用程序之间传送 要通过主机的t c p i p 堆栈上下移动。在发送端 l c p i p 模块加在数据上的信息将在接收端对应的 t c p i p 模块一h 滤掉,并将最终恢复原始数掘。 第二节t c p i p 协议族 一、t c p i p 协议的数攒传输过程 t c p 【p 协议所采用的通信方式是分组交换方式。所谓分缎 交换,简单浣就是数据存传输时分成若干段,每个数掰段称为一 个数据包,t c p t p 协议匏基本传辕棼位是数据包,t c p i p 掺议 主要包括两个主要的m 议,即t c p 防议和i p 协议,这两个协议 ;虿苏联合爱强,也j 季瑷i 萁毯协泌联合使用,它们盔数据传输过 程中主要完成以f 功能: ( i ) 首先由t c p 协议把数据分成菥于数据包,给每个数据 包写上序号,以便接收端把数据还原成原来的格式。 ( 2 ) t p 协议给每个数掂包写上发送主帆和接收墨机的地 址,旦写上的源 p 地盎 葶n 爨的e p 缝蛙,数据包就 可以在物理网h 传送数据了。i p 协议还具有利用路幽 算法遘雩亍爨由选簿静功笼。 ( 3 ) 这些数掘包可以通过小同的传输途径( 路山) 进行传 输,由手路径不同,拥| 其他的原因,可能如现顺序 颠倒、数据丢欠、数据失真甚罕重复的现象。这些问 题鄙电t c p 协渡束处蠼,它巽有梭套秘链瑷错溟款功 能,必要时还可以请求发送端重发。简毒之,l p 吣议 负责数据的筠输,丽t c p 协议负责数据的;q 锫传输。 二一、标准的 p 地址 死沦是从使用i n t e r n e t 的角度还是从运 j :i n le r n e t 鲍角发 看t p 地址和域名都是十分重要的概念,当你与i n t e f i l e t 上其它 爆户进行遗信时,或者寻找i n t e r n e t 熬务静烫源时罄会蠲到 f p 地址戚者域名。 l p 遣缝是i n t e r n e t 主税豹一耱数字型标识,它国部分组 成:是地址滥型;二是网络标识( n e t i d ) :i 是t 机标t ( h o s t i d ) 。 目翦所使明的t p 协议版本是i p v 4 ,它燃定:”地址的长度 为3 2 位。 n t e r n e t 的网络地址类型f i 丁分为三类( a 类、b 类、c 类) ,每类瓣络中i p 缝鲎款结构鄯鼹络标谚 长度秘妻撬标谈 长度都有所不同。 a 类:,屯是激0 拜然的i ) 她垃均鬣予a 类嘲络。 b 类:凡是以1 0 开始的t ) 地址都属于b 类网络。 e 类:j ,l 是以l l ( ) 玎始的i p 地址鄙鞲于c 类鲻络。 如下幽所示: 012 37 81 5 1 62 3 2 l3 l a0n e i dl f o s t i d blon e ti dh o s t i ( i ejl0n p td限,“i t 慝l 一2i p 地蛙分类 由此可见a 类网络i p 地址的网络标识长度为7 位,t 机标 识静长度为2 4 位。b 菸网络 p 圭| 亟氆的网络标识民度为1 4 侉, 丰机枷;u 长度j 6 位。c 类网络i p 地址的网络标识长度为21 位,手机标汲长度为8 位。这样大家可以容易地计算出 i n t e r n e t 整个i p 地址窄问的冬类网终数耳和每个网络地址中司 以容纳的主机数目。 三、鹱动jn l e r n e tf :份兹协议集 t c p i p 是联网计算机之问相互谶行通信所使用的种标 准。至予这些计算辊怒否在司一个稠络或是瓣搠在不麓嘲络上浏 是无关紧要。i c p i p 是一个独立于平台的标准,它在不同计算 机之间、不同绦作系统之间和不同网络之间的“鸿沟”上建立起 座姻亘沟通的桥梁。是它驱动凑全球! 巨联嬲,丽仝球互联嘲则 使得t c p i p 如此流行。 t c p i p 金稼是传翰控刳协渡稠黪密瀵。在霹络术语中,汝 议是为了在两台汁算机之间交换数据扁预先规定的标准。t c p i p 是一令斑议棱,丽t c p 和 p 灵是其中两个主要协议积已。 装在计算机的t c p i p 软件提供了一个包括t c p 、i p 以及 t c p i p 协议集中其它协议的工具平台。特别是它包括,些高层 次的戌用程序如f t p ( 文l 牛传输 办议) ,它免讥用户盔命令行上 进行网络文件传输。 t c p 弦是美国政府资助懿瘫级谚究计划漂( a r p a ) 盎“o | - 附纪七f - 年代的一个研究成果,用来使仝球的研究网络联在超 形成一个纛叛鲻络,疆互裁是鹜际瓦联弼。厥始的i n t o f n o l 遴过 垒堕竺二查堂! 壁! 兰堡鎏墨 将已有的网络如a r p a n c t 转换到t c p i p 卜来而形成,而 i n t e r n e t 最终成为翔今弱窝际要联嘲瓣7 蒸子瘸。 如今t c p i p 如此重要的原因,在于它允l :独立的网络加入 到i n t e r n e t 。加入i n t e r n e t 的每个阏络通过一种喇儆路国器戚 l p 路由器的设备在物理h 联接住一起。路由器是一惫燃来从一 个网络到另一个网络传输数搛包的专用计算机。在一个使用 5 f c p i p 的内部网中,信息通过使用秘独立| ;| 勺叫镘l p 包( i p p a c k e t ) 或p 数据报( i pd a t a g r a m s ) 的数据币元进行传输。 t c p i p 较转使得每台联至l 弱臻圭二戆计算壤裁英蹙诗箨瓿“著” 起柬模一样,事实上它隐藏了路由器和基本的网络体系结构并 使各方丽看起柬都像一个夫溺。如同歇入以太掰时需簧确认1 。个 4 8 位的以太刚地址榉,联入一个内部网也需要确认一个3 2 位 的i p 地址。我们将它用带点的i 避制数表示,如 1 9 9 8 3 5 。6 6 。给定一个远程计算枫憨i p 地址,在菜个内部蹦或 i n t e r n e th 的本地计簿机就可以像在同一个物理网络中的嘲台 诗嬖槛鄂撑起远程诗算枧发送数据。 t c p i p 提供了一个方案用来解决属于同一个内部网而分属 于不葡物理丽瀚两台诗算梳之闽怎样交换数霸瓣闷疆。这令方案 包括许多部分,而t c i ) i p 协议集的每个成员则剧来解决问题的 某个部分。如t c p i p 协议集巾最基本的协议一i p 阱议用束往 内部雕中交换数据并娃执行一碘重要的功能:豫由选择一选择数 据报从a 机到r 主机将要经过的路径以及利用合适的路由器完 成不弱阚终之闽的跨越( h o p ) 。 t c p 足个更高层次的协议。它允许运行在_ i 同土机 的鹿 圈程净相互交换数蕤滴。t 将鼗霸流分残4 、段# q 数t c p 数搬段 ( | l c ps e g m e n t s ) ,j = 利用l p 朗议进行传输。在大多数悄况卜, 叁垄些! 叁z 翌! ! 兰篓燕兰 每个f c p 数据段装在一个数据报中进行发送。f i t 如需要的 话,t c p 将把数罐段分减多拿数据摄,霜 p 数据掇燃与同一黼 络不同主机间传输位流和字节流的m a c 数据帧相容。由一j 。i p 并 巧i 能保证接收酌数据报的顺序褶+ 一致,t c p 会在接收菊装配t c p 数据段并形成一个不蚓断的数搬流。f t p 和t e n e t 就是聪个非 常流行的依靠t c p 的t c p i p 应用程序。 爿+ 个重癸的t c p p 协议集的成员楚用户数掇掇揍议 u d p ,它同t c p 相似但比t c p 原始许多。t c p 是一个可靠的办 议,因为它有镄误检查露握手魏汲寒缣涯数掇完整静霹达鏊的 地。u d p 是个不可靠的协议,因为它不能保证数掘报的接收顺 序嗣发送簸序稳同,甚至不麓保证它们楚否令部蓟达。如采有可 靠性要求,则应用程序避免使用它,当速度的鬻求高于可靠性的 情况下掰u d p 。同许多r c p i pl 具同时提供g n m p ( 简单网络管 裂协议) 就是一个使爱u d p 协泌的应用铡子。 其它t c p i p 协议在t c p i p 网络中:作在鞯后,但同样也发 撂着重要俸鼹。铡翅避缝转换协议( a r p ) 跫将已翔黪另台枧 器的i p 地址转换为物理网络地址如以太网地址。而反向地址转 换谤议( r a r p ) 傲静工作是将已知的鑫已本机静物理嘲络地圭韭转 糗为自己的l p 地址。网际控制撤文协议( i c m p ) 则是个支持 住协议,它利用l p 完成i p 数獬报在传输时的控制信息和错误信 息的传蝓。例如,如果个路由器不能向盼发送一个lp 数掇 撤,它就会利用i c m p 来告诉发上跫名这罩出现了问题。 第二篇客户机与服务器 篇一节基本原理 大家知道,网络的一种基本用法怒允许资源的共享。在许多 时闻里,这种共享通过两个独立的程序来完成,分别运符在不同 的计算机上。个稃序称为服务器,提供特定的资源:另一个程 序称为客户枧,惩于利用资源。镶翅,缓设嗣户在叁曩瓣pc 视 上运行一个字处理程序,他告诉该程序想要编辑一个网络卜其他 诗算帮i 内存放蕾豹一个蒋定文,f 牛,嘲该程序翔鄢台计簿祝发送一 条消息,请求传送该文件。存这种情况f ,字处理程序就是客户 机,而接受请求并发送文件的程序就魁服务器。更确切地说,它 是一台文件服务器。 在局域网中,硬件更易于观明问题,通常人们用“服务器” 一词摆运行鼹务器程序戆实际跨算机。 在i n t e r n e t 上,通常看不剑硬件,术语“客户机”和“服 务器”一般指申请帮爨供鞭务豹程序。这里有一个重要的铡子。 许多i n t e r n e t 地点提供种称为“f t p ”的服务,用户使用 p 时,将涉及两个不同的程序。首先是提供界面的程序,浚程 序解释剧户的,砖键、显示菜单,通常还确认剧户的请求已被定 义。眩程序称为f t p 客,、1 机( 浏览器已经包含了这个功能) 。” 一个程序是为f t p 客霉i 犍供黻务载,该程序稼为f t p 缀务器。 该系统的优点是客户gl # u t i b i 务器程序不必运行在同一计算机 一l :。事实上多数情况_ 卜- ,客,t 瓿帮强务器程亭分别驻留在不嗣瀚 汁算机。| 二。例如,剧j 、i 叮以坐存人连的一台计算:机静丽,使用 f t p 下蕊位t1 0 0 0 公警之外的北京某个服务器t 的可下载文 垒堡竺! 叁兰堂! 兰簦堡兰 件。这种情况f ,f t p 客户机是运i j :在p c 卜的程,腼r t p 服 务器鲻是奁爨渴另一令迭方熬一台谤篱:瓿主运写亍鹩程垮。 i n t e r n r l 的所有服务都用这种客户机服务器模式连接。学 习翔何使瘸f n t e r n e t 实际卜就是学习翔翻便霜各个客户枫程 序。凶此,为了使用某个 n t e r n e t 服务,用户必须理解: ( 1 ) 如何启动该项服务的客户机程序。 ( 2 ) 如俅把要使用的鼹务器告诉客户枧程序。 ( 3 ) 这种类型的客户机必须使用的命令。 用户夔l 。佟是启动客户t 莓l 势告知簧骰抟_ _ :l 二傅,客户祝豁工佟 足连- f u i l f 确的服务器,保证剧j o 命令正确地完成。 客户梳灏务器( c t j e n t s e r v e rs y s t e m ) 是强静分布式秘 络普遍采用的种技术,也是i n t e r n e t 所采用的最煎要的技术 之一。了解客户棍碾努器系统的基奉概念以及在i n t e r n e t 中的 灵活应用对i n t e r n e t 用户来淡颇为有蘸。一般漉来,c t i e n t 嬲 s e r v e r 是指稃序而言,因此可以译成客j 、,程序和服务程序为 好,_ | = t 终,s e r v e f 确时也包括鼹务程序以及穗供鼹务时所鬣要 的数据,在这种情况下译成服务器【乜未尝不可。只是因为没有客 户器静涎泫,釜褥不够对称。 存分布式网络环境下,一个应用程序可以分为两部分,即客 户程序和服务稷序。这种应用稃序运行时,它茸先要稿动或调用 客户撺序并且遽过有关命令告器客,、程序露受与哪个服务程序 ( 有时对用户来说是透明的) 进行连接以及完成哪种操作。,此刻 客户礁序即可与服务程序建立联系并把自关信患变给麟务程序, 服务程序则按照客户程序的要; ;提供丰h 应的服务( 如把盘找到的 麓患传逮给客j o 程序等) 。 墨竺些三叁堂坚! :兰堡堡! 需要注意的足,客户程序与服务秘膨的连接过程是呵以童复 遴行熬,这耪连接方式蘸为客p 程序嘏务程序瓣链式逢搂 ( c h a in e dc o n n e c t 1 ) 。这种情况在使用i 耵e r n e l l 时经常发 生,有时莲入+ 个应用程序之后常常楚觚美国到荚困,飘英函到 新加坡,再从新加坡到香港。经过辗转反复之届甚至连自己也小 知道从哪个系统进入的。人们常把这种方式称为漫游 i n t e r n e t 。 客户程序和服务程序之问的通信必须依赖特定的邋信协议, 这些携议在l 、( ;p i p 协议蕊窭层结掾中艘矮应用爱协议。 客户机服务器系统是网络化信息应用系统的一个重大进 步。其主要 莞点是: ( 1 ) 把一个应用系统分成两部分,并日在i i 唰的主机e 运 行,i ;j j 以简化应用系统的程序陵计过程,辩别是可以 使客户程序晦服务樱序之阈的通信过程标准化。l f 隳 为如此,i n t e r n e t 上的同一种服务往往有许多种不同 款客,、程序和不同的鼹务疆;箩,这些程序爨为是按照 相同的通信协议设计的,故n 1 可以存不同的硬件环境 鞠漂 乍系统环境下运行并置有效遗滋行通信。这 卜h 是 i n t e r n e t 的成力所在:, ( 2 ) 把客,程序和服务挥序放在不同的主机上( 当然也可 以放究相同的丰桃卜) 运行以实现数据的分散化存 储和集中化使用。这意味蕾可以降低应用系统刑硬件 的技术要求( 如内存襄磁盘鲶窖鬃以及c p u 遽度 等) ,使备种规模的计算机( 包括最普通的微机) 都 潋侔为j w e r n 的手掇使甭。这滋是i n 7 、e l ( n f t f 的 冀捌一 。 查些些1 查兰型1 兰堡堡兰 第二节服务器模型 在网络程序罩面,一般的来晚都是许多客户机对应个服务 器。为了处理客户机的请求,读服务端的程序就提出了特殊的要 求。我们介绍一下目前最常用的服务器模型。 循环服务器:循环服务器在同一时刻只可以响应一个客户端 的请求。 并发服务器:并发服务器在同一时刻可以响应多个客户端的 请求。 2 1 循环服务器:t d p 服务器 u d p 循环服务器的实现非常简单:u d p 服务器每次从套接字 上读取一个客,- 端的清求,处理,然后将结果返回给客户机。 可以用下而的算法来实现: s o c k e t ( ) b i n d ( ) w h i l e ( 1 ) r e c v f r o m ( ) : p r o c e s s ( ) ; s e n d t ( ) ( ) : 因为u d p 是面向无连接的服务,没有个客户端可以总是1 1 i 停服务端。只要处理过程不是死循环,服务器对于每一个客户机 的请求总是能够满足。 2 2 循环服务器:t c p 服务器 盔望些! 叁兰竺兰兰些鳖。 1 c p 循环服务器的实现也不难:t c p 服务器接受一个客户端 的连接,然后处理,竞成了这个客户的黢青请求蜃,繇开连接。 算法如下: s o c k e t ( ) : b i n d ( ) : | is t e n ( ) : w h i l e ( 1 ) a c c e p t ( ) w h i l e ( 1 ) r e a d ( ) : p r o c e s s ( ) : w r lt e ( 。+ ) : c l o s e ( ) : ) t c p 德骂戴务器一次,、e 6 。t 5 处理一个客户端的请求。只宙在这 个客户的所有请求都满足后,服务器才可以继续后面的清求。这 襻翔采有。个客户端占往服务器不放时,其它的客户视都不能工 作了。因此,t c p 服务器一般很少垌循环服务器模型的。 2 3 并发服务器: 为了弥 缀坏t c p 鼹务器的缺陷,人们又恕出了劳发缀务嚣 的模型。并发服务器的思想是每一个客户机的淆求并不由服务器 蕊接处遴,两是缀务器创建拿于进程来处理。 叁望些! ,叁兰鐾兰兰婪堕兰 一般包括三种类型:t c p 服务器、u d p 臌务器和多路复用 u o 。 t c p 并发服务器可以解决t c p 循环服务器客户机独占服务器 豹渣况,不过迄同时带寒了一个不小鹣润题。为了臻疲客撬的 清求,服务器爨创建予进程来处理。而创建子进程是一种非常消 耗资源的操作。 多路复用t o 是为了解决创建子进程带束的系统资源消耗蕊 产生的模型。 。般的米院当我们在向文件读写时,进程有可能在 读写时骧塞,赢到定瓣条俘滤足。比如我髓鼹一令套接字读数 据时,可能缓冲区罩面没有数据可读( 通信的对方还没存发送效 撵过寒) ,这个时娱我们酶读镧雳藏会等待( 1 鞋耋) 套翻有鼗据 町读。多路复用i o 可以解决资源限制的问题,这模型实际上是 将u i ) p 循环模型用在了t c p 上黼,这盘就带束了一些问题,如由 于服务器依此处理客户的请求,所以可能会导致有的客户会等待 很久。 著发i j d p 服务器模型其实楚篾单的,积劳发载瞄p 鼹务器糗 型一样是创建一个子进程来处理的算法。 除嚣骚务嚣在处理窖户端的渍求魇用麓时瓣魄较长以努,久 们实际上很少h j 这种模型。 夫琏避工天学峨 掌往硷盅 籀三篇套接字( s o c k e t s ) 模溅 第一繁s o c k e t s 技本 在8 0 年代翠期,远景研究规划髑( a d v a n c e dr e s e a r c h l h o j e c tl l g e n c y ,勰麓) 浚肇了熬秘褥冕蘧麦掌浆竟剽分羧嚣一 个研究组,让他们将t c p i p 软件移植列 ;n i x 操作系统巾,并将 缭蓉鬟供泠其穗瓣点。俸旁顼g 辩一帮势,设诗卷粥翻戆了一个 搂口,应蹦进稷使月这个接口可以进幸亍越j l t 。他们决定,只要鸯 可能就锼糟已有躺系统调厢,对鄢些不舷方便容入已有黼数集的 骑嚣,瓣煺挺瑟的系统谜鲻数支持踅 p 功忿。这鬓擞靛绥暴 就出现了捅口撩j 1 ( 磷接字) ,这个蕊统坡称为b e r k e l e l y u n i x 或b s c 添l 篾。卷予诲多鞋、冀戴 囊,楚英楚豫s u n m i e t 、o s y s t e m , t e k t r o n i x 骧甓t ) i g i t a l 这薅熬互箨蛞潮造舞,氇髓采鬻了 b e r k e l e yu n i x ,f 是夺 午多机器上都可以使剧撼口接嗣。这 样,掭弱接日就西被广泛应用,璐至于成为事实h 的标凇。由予 b e r k e l e y 蕊设诗畿遽溱拯议,憩嚣1 提撰了越篷t c p i p 之辨戆 黢性。他们允许能厢多种协议旅( f a m il y ) ,而搬所有t c f i p 协 议表示惫挚 瓜族( 簌p 冀。i n e t ) 。遂嚣j 还浚定,适应瑟糕序整鼷 所骠求的服务类型( t y p eo fs e r v i c e ) 来指明操作,而不是措 磷协谈名。透魏+ 令彦瓣疆骞不嫠去撵磺恁需爱令+ 踅p 连 接,而魁疆求使用ir l t e r n e t 协议凝的流传送ts t r e a m t r a n s f o r ) 类型鹊服务。 郧么到旌嚣么是套接宇? 最籀举建醚t 套接掌鼓是魁绻送撵 龄i ) 。刚蹈通信,归根结底是进程的邋倍。壳网络中每个节 查些些! 查鲎堕! :兰垡堕兰 点有一个网络地址,两个进程通信时,首先要确定各自所在例络 疆点嬲焖络地皱:、但是,剐络地址 畿确定进程所在的这算枕, 而一台计算机j :可能存同时有多个网络进程,还不能确定到底是 其中熬薅令送稷,霆藏套接字中还需餮有萁憩瀚信愚,鄂裁是端 u 号( p o r t ) 。在1 台计算机中,一个端口一次只能分配给个 进程,即在台计算机中鞴醋号与进程是一对应的关系。因 此,端口号5 和网络地址就能唯一地确定繁个i n t e r n e t 中的个 网络进程。丁以认为: 套接字= 嘲络建墟+ 端墨号 套接宁种类很多,主要有流式套接字( s r e a ms o c k e t ) 和 数据套接字( 1 a t a g r a ms o o k e t ) 。两祷套接字麴区掰在于德们 使用f :恫的协议。流式套接字使用f c p 协议,数据报套接字使用 u d p 济议。亿p 协议,虢是传输控制协议,是一种面向连接的、 可靠的、双向通讯的数据流。我们蜕它是可靠的,它使用二段式 握手方式传输数据。另外,t c p 保证数据的顺序。如粜向流式套 接字脓序输出“l ,2 ”,那么数据也将援颁廖“l ,2 ”到达男一 边。t c p 是无错误的传递的,有自己的错误控制机制。使用t c p 协议黪套接字怒滚式套菠字。t k l n e t 使秘戆裁是浚式套接字。 u d pf 办议,就是用户数掘报协议,提供对数据的卣接访问权,传 输时无连接,不执行清对端酌;叮靠往裣奁,也没有验证技术,溺 此是一种不太可靠的协议一如果发送一个数据报,它可能到 达,也可能中间丢失,而且传到时可能次序颠倒了。小过 到达,那么在这个包的内部是无错误的。u d p 玎销比较低 预先建立连接,传输时f i 必确认,当我们要传输的数据不 对数据传稔霹靠睦兹要求不是特潮高鹣时候,戴可强经掰 如果它 ,l i j 琵 0, 别 嚼 足压理下夫。笋坝l 学位淦立 议。使用数掘撒套按字最好在应f = f j 程序中有“定的弥补措施,以 确认数掇是否正确传输。 第二节网络通信过程中s o c k e t 的使用 潮络编程中最常范的是客户服务器模式。以该模式编程 时,服务端有一个进程( 或多个进程) 在指定的端口等待客户柬 连接,服务程序等待客户的连接信息,一旦连接上之后,就呵以 按设计的数据交换方法秘掺式避行数撂传竣。客户斌在需要匏时 刻发出向服务端的连接清求。卜 而讲述中所用到的调用,将在下 一部分逐嚣详缀数酒述,这里为了淫予疆解,疆癸了这些溪;专 及 其大致的功能。 使蠲s o c k e t | 鼋角盾,仅产生了一个可以筏用的s o c k e t 描述 符,这时还不能进 j :通信,还要使,e l 其他的调用,以使德 s o c k e t 所指的结构中使用的信息被填写完。在使用t c p 协议 时,一般服务端进程先使用s o c k e t 调蹋褥裂一个描述餐,然后 使用b i n d 调用将个名字与s o c k e t 描述符连接起来,对予 i n t e r n e t 域裁是跨i n t er 。n e t 遗墟联缡铡s o c k e t 。之后,爨务鹚 使用1 i s t e m 调用指出等待服务清求队列的长度。然后就可以使 溺a c c e p t 调甬等待客芦,漆发熬连接( 一觳是黼豢等待连接) , 一旦有客户端发出连接,a c c er ) i 返回客户的地址信息,并返回 个新的s o c k e t 描述符,该插述符与原先的s o c k e t 有相同的特 性,这时服务端就可以使用这个新的s o c k e t 避行读写操 莹了。 一+ 般服务端可能在a c c 。p t 返回后创建一个新的进程进行与客, 粒遗信,父进程烈_ 蓐到m c e p t 调嗣处等待另令连接。客户游 进程一般先使用s o c k e t 调用得到个s o c k e t 描述符,然后使 用c o f t i c t 向指定豹骚务器上的指定端口发起连接,翻连接成 叁堕些三查堂些! 堂堡堡兰 功返回,就说明已经建立了与服务器的连接,这时就iu 以通过 s o c k e l ,越述褥遴i 亍滇写操 乍了。 使用无连接的u d p 协议是,服务端进程创建一个s o c k e t ,之 焉辍霜r e c vc r o r n 接收客户端戆数据擐,然后溺孺s e n d t o 将要返 回客户端的消息发送给客户进程。客户端也要先创建一个 s o c k e t ,存使嗣s e n d t o 向服务端遗程发出请求,使用r e c v f r o m 得到返回的消息。 下面是在客户和服务端使用t c p 时,客户进程和服务进程使 岗系绞渊 e 鞋f 留浚程。 客户端服务端 s o c k e t0 s o c k e t ( ) w r i t o ( ) r 。嘉( ) , c 1 0 s e 0 a c c e p t0 ) ,曳( ) 圈3 1 客户进程和服务进程调用流稃 ,士啦i士 魄 1。士 ( ( 0 e t 8d | i , w c 杰踅型三查生塑! :竺堡曼兰 第三节 s o c k e t 套接字的基本操作和函数调用 先介绍流式套接字的操作,数据报套接字的有关操作在后觏 简单介绍。 创建套接字函数: i n ts o c k e t ( s k f a m i l y tf a r o i l y ,ln tt y p e ,i n tp r o t o c o ) 雳柬叟域一个套接字戆捂述雩啻。 绑定套接字函数: i n t 断n d ( i n ts o c k f d 。c o s ts t r u c ts o c k a d d r * m ya d d r ,in ta d d r l e n ) : 将套接字和机器上韵一定的端关联起来,这个调厢不是必 须执行的。用s o c k e t 0 得到的套接字可以基按调用c o n n e c t 0 ( 客户端使用) 或t i s t e n 0 ( 服务端使用) ,这时内核会自动 给套接字分配个地址翔斌r | 号。尤其客户端,缀少馒用b i n d 0 这个系统调用。 连接羰务嚣溺鼗: in tc o n n e c t ( in ts o c k f d ,c o n s tstf u c ts o c k a d d r *serva d d r ,1 n ia d d r l e n ) ; 创建了 个套接字之后,我们就希涩它和另一台_ = = 枧| = = 的荩 个网络进程连接,连接之后才能进行数榭的传输( u d p 协议不用 事先连接) 。客户端秘鼹务鲻完成连接熬方式是不疑终。 c o n n e c t 0 系统调用客户端用柬b 服务器连接的。 整听连接s o c k e l 熬爝数: i n tl lsl e n ( i n ts ( h :k f d i n th a c k j o g ) : 土= 琏雌 凡辞:啦 l 予“ 辘耋父 客户端要连接服务器时就调并j6 m n e c t 0 ,服务端使朋 l i s t e n 0 获撂迄接。与謇广;端瓣l 佟方式枣隧,鼹务器遂程事先 不知道谁要与自己连接,因此不会_ _ 三动地要求与某个进程连接 ( c o n n e c t 0 ) ,它是跫蕊嘶是轰有其 | 童避耀( 客户遘程) 要求与它 涟接,并对该连接请求作出处瑚。一个服务器进程可以同时处理 多个客广;避程的连接请求。 建立连接的幽数: i n ta c c e p t ( i n ts o c k f d ,s t r u c ts o c k a d d r * c le n t a d d r i n t 率甜d r l e n ) : 服务器一般是先调用l i s t e n ( ) 监晰,然后用a c c e p t ( ) 逐 处瑾骞个连接,a c c e p t ) 鲢参数c l i e n t _ a d d r 窝a d d r l e n 返回黥 怒完成连接队列中的第一个连接的有关信息,电就是最早的一个 涟疆。a c c e p t0 话确逐潮时,逐圈一个套接字描述符。这翠出蕊 瞬个套接字,一个在参数中出现的,“监听套拔字”,另一个是 凋甬返阐的,我们称之为“连接套接字”。它们的区别见下表 整瓯套揍字连接套揍字 创建s o c k e t ( ) a c c e p t , 0 r 副喇0 ,i is t e n 0 。稔入输出搽侔。可鞋 a c c e p t 0 是一般的文件读写调 角,或者是黜络文搏 专用涵数s e n d 0 , r e c o 】v e ( ) p 箍骄来叠客户端的 t i 菜个露p 送摇连 连接请求,弗建“范接,宠成具体的数擐 连接传输工作 生存周期个服务器进程岛一次连接对应个连 一令遂孵黉接字襁接黉筵
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025广东官洲街道环监所招聘模拟试卷及答案详解(网校专用)
- 2025黑龙江齐齐哈尔市红十字中心血站人员招聘1人模拟试卷及答案详解1套
- 2025安徽蚌埠市怀远县教育局所属事业单位紧缺专业人才引进(校园招聘)15人模拟试卷及答案详解(名师系列)
- 2025内蒙古呼和浩特市新城区中医蒙医医院(新城区保合少镇卫生院)招聘1人考前自测高频考点模拟试题完整答案详解
- 2025春季中国东航北京分公司校园招聘考前自测高频考点模拟试题含答案详解
- 2025年山东出版集团有限公司山东出版传媒股份有限公司招聘(192名)考前自测高频考点模拟试题及答案详解1套
- 2025年返聘人员重新签订的劳动合同
- 2025股权分配合同协议书范本
- 2025广东广州市中山大学孙逸仙纪念医院超声科医教研岗位招聘考前自测高频考点模拟试题及1套完整答案详解
- 2025江苏南京大学医院事业编制和校聘岗位招聘考前自测高频考点模拟试题及完整答案详解1套
- 【拆书阅读笔记】-《网飞文化手册》
- 合肥市建筑工程质量验收综合表
- 2023年检验检测机构质量手册(依据2023年版评审准则编制)
- 华为从战略到执行培训
- 变化点(4M变更)管理管控表
- 洪恩识字配套字库完整版识字启蒙200字-生字组词句子完整版可打印-点读指读
- 辽宁省2023年中考语文试题【6套】(含真题答案)
- 土木工程概论课件
- 虚拟现实技术在物流与快递配送中的应用与创新
- 癫痫的预防及护理
- 液压桩机安全操作规程
评论
0/150
提交评论