- 9
- 0
- 约1.19万字
- 约 11页
- 2016-11-29 发布于重庆
- 举报
基于Socket的客户机服务器模型
基于Socket的客户机服务器模型
摘 要本论文介绍Socket通信的定义、通信类型及实现原理,Delphi的Socket 组件,并通过客户端和服务器端的Delphi 编程实例,说明两者是如何进行通信的。
关键词:Socket;Delphi;通信;客户端;服务器端
0 引言
大部分网络协议的实现都由客户端(Client)和服务器端(Server)来协作完成。这种模型本质上涉及两个不同的程序,通常这两个程序在不同机器上运行,这些机器之间都有网络连接。服务器端程序提供服务并对来自客户程序的请求作成响应。而客户端程序则是在使用者和服务器端程序之间建立某种沟通的渠道,或者是作为使用服务器端提供的某种网络服务的工具。一个典型的服务器与客户机之间的交互可能如下所示:1)客户机提出一个请求;
(2)服务器收到客户机的请求,进行分析处理;
(3)服务器将运行处理的结果返回给客户机。
通常一个服务器需要向多个客户机提供服务。因此对服务器来说, 还需要考虑如何有效地处理多个客户的请求。
1 Socket通信简介?
Socket是建立在传输层协议(主要是TCP 和UDP) 上的一种套接字规范, 最初是由美国加州Berkley大学提出的,它定义了两台计算机间进行通信的规范。假设两台计算机是利用一个“通道”进行通信,那么这个“通道”的两端就是两个套接字。套接字屏蔽了底层通信软件和具体操作系统的差异,使得任何两台安装了TCP 协议软件和实现了套接字规范的计算机之间的通信成为可能。
Socket又称套接字,在程序内部提供了与外界通信的端口,即端口通信。Socket通信,在双方建立起连接后就可以直接进行数据的传输,在连接时可实现信息的主动推送,而不需要每次由客户端想服务器发送请求。通过建立Socket连接,可为通信双方的数据传输提供通道。Socket的主要特点有数据丢失率低,使用简单且易于移植。
服务器与客户端的Socket 通信类型
Socket 的连接类型可以分为两种, 分别是面向连接的字节流类型(Sock_stream) 和面向无连接数据报类型(Sock_dgram)。流套接字将TCP作为其端对端协议,提供了一个可信赖的字节流服务。数据报套接字使用UDP协议,提供数据打包发送服务。
面向无连接数据报类型的Socket 工作流程比较简单,双方不需要进行太多的沟通与交互。客户机直接将用户的请求打包发送到服务器端,省略了建立一个固定信息通道的过程。服务器端也是直接将处理的结果发送给客户端。其工作流程如图1所示。面向连接的字节流类型的Socket工作中有比较严格的操作次序,工作的原理也比较复杂。在这种类型的Socket的工作过程中,必须首先启动服务器端,通过调用Socket()函数建立一个Socket对象,然后调用Bind()函数将该Socket对象和本地网络地址绑定到一起, 再调用Listen()函数使该Socket对象处于侦听状态,并规定它的最大请求的数量。其工作流程如图2 所示。
图1 无连接Socket 操作流程
图2 面向连接Socket 操作流程总的来说,无连接和面向连接的通信方式各有长处和短处。在仅仅涉及少量的信息传递的场合可以使用无连接操作;如果涉及大量信息传递的场合可以采用面向连接操作。
3 Socket基本实现原理
3.1 基于面向无连接UDP协议的数据传输?
服务器端首先创建一个DatagramSocket对象,并且指点监听的端口。接下来创建一个空的DatagramSocket对象用于接收数据(bytedata[]=newbyte[1024;] DatagramSocket-
packet=newDatagramSocket(data,data.length)),使用DatagramSocket的receive方法接收客户端发送的数据,receive()与serversocket的accepet()类似,在没有数据进行接收的处于堵塞状态。 客户端也创建个DatagramSocket对象,并且指点监听的端口。接下来创建一个Inet- Address对象,这个对象类似与一个网络的发送地址(InetAddressserveraddress=InetAd-
dress.getByName(20)).定义要发送的一个字符串,创建一个DatagramPac-
ket对象,并制定要讲这个数据报包发送到网络的那个地址以及端口号,最后使用Datagra-
mSocket的对象的send()发送数据。*(Stringstr=hello;bytedata[]=str.getByte()
;DatagramPacketpacket=new DatagramPacket(data,data.length,serveraddress,4567);
s
您可能关注的文档
最近下载
- 2023年江苏省常州市中考语文试卷附参考答案.pdf VIP
- 四川专升本数学2025年真题 及答案 .pdf VIP
- 2026年寒假特色作业模板【可编辑 可打印】.pptx
- 任务一短期投资的核算.ppt VIP
- 生物必修二全套课件.ppt VIP
- 2023年江苏省常州市中考语文试卷.docx VIP
- 2025年江苏高考地理真题(解析版).docx
- 2026年教案课件-中华民族共同体概论-第1-9讲-混一南北与中华民族大统合-教案合集-新版.pdf VIP
- 新解读《GB_T 39329-2020增材制造 测试方法 标准测试件精度检验》.docx VIP
- 医疗器械部门职责与岗位划分指南.docx VIP
原创力文档

文档评论(0)