UDP协议及其在磁场数据采集系统中应用.docVIP

UDP协议及其在磁场数据采集系统中应用.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文档。上传文档
查看更多
UDP协议及其在磁场数据采集系统中应用

UDP协议及其在磁场数据采集系统中应用   摘 要:UDP协议具有传输效率高、可扩展性强等特点,适用于实时性要求高、数据传输量大的场合。文章简单介绍了UDP协议并以磁场数据采集系统为例,给出了在Delphi环境下PC机与测磁仪间实现UDP协议网络通信的方法。   关键词:UDP协议;磁场测量;数据采集;Delphi   在分布式测量系统中,大多数采用以太网进行数据传输。以太网的传输协议有TCP和UDP等。TCP是面向连接的,可靠性较高,但效率较低;UDP则是一种传输速率高,但不保证数据可靠性的协议,因此比较适合应用在实时性要求高、数据传输量大的测量系统中。   1 UDP协议简述   UDP协议的母体和TCP协议一样,也是IP协议。每个UDP报文称为一个用户数据报,分UDP报头和UDP数据区两部分。报头由四个16位长的字段组成,分别说明该报文的源端口、目的端口、报文长度以及校验和。UDP报文格式如图1所示。   图1 UDP报文格式   源端口字段和目的端口字段包含了16位的UDP协议端口号。长度字段记录该数据报的长度,以8位为组计算,包括报头和用户数据区。校验和字段是可选择的,如该字段值为0,表明不进行校验。UDP协议的报头只包含几个域,比TCP包头简单,它的网络开销一般要小于TCP协议。同时,由于UDP协议在传送数据过程中没有建立连接,也不进行检查,因此在优良的网络环境中,其工作效率较TCP协议要高。但UDP协议不提供报文到达确认、排序以及流量控制等功能,因此,报文可能会丢失、重复以及乱序等,其可靠性问题只能由使用UDP的该应用程序来解决。   2 利用Delphi编写UDP协议的网络应用程序   2.1 INDY介绍   INDY的全名是Internet Direct,是一套开放源代码的Internet控件集,它支持大部分Internet协议,包括TCP、UDP、HTTP、POP3等,支持BASE64、MD2、MD4、MD5等编解码,提供相应的客户端和服务器控件。INDY是完全基于SOCKET阻塞工作模式的开发库,支持Delphi、C++ Builder等开发平台。   2.2 INDY UDP相关控件   INDY(10.1)提供了UDP相关的服务器和客户端控件TIdUDPServer、TIdUDPClient,它们封装了UDP协议的实现。   (1)TIdUDPServer控件的主要属性及方法   主要属性:   ◆Active,启动??停止UDP;   ◆Bindings:TIdSocketHandles,服务器所分配的套接字句柄(Socket handles);   ◆BufferSize:Integer,最大数据包大小;   ◆DefaultPort:integer,用于监听新连接的端口号;   ◆IPVersion,UDP支持的IP协议版本;   ◆ThreadedEvent:boolean,指定是否采用独立线程进行UDP读操作。   主要方法:   ◆Send(AHost: string, const APort: Integer, const AData: string),向指定IP地址(AHost)和端口(APort)的端点发送字符串;   ◆SendBuffer(AHost: string, const APort: Integer, const ABuffer: TIdBytes),向指定IP地址(AHost)和端口(APort)的端点发送字节数组;   ◆ReceiveString(const AMSec: Integer = IdTimeoutDefault): string,接收字符串;   ◆ReceiveBuffer(var ABuffer: TIdBytes, const AMSec: Integer = IdTimeoutDefault): Integer,接收字节数组。   (2)TIdUDPClient控件的主要属性及方法   主要属性:   ◆Host:String,远端计算机IP地址;   ◆Port:Word,远端计算机端口号;   ◆BoundIP:String,本机IP地址;   ◆BoundPort:Word,本机端口号;   ◆BoundPortMax:Integer,本机最大端口数;   ◆BoundPortMin:Integer,本机最小端口数;   ◆BufferSize:Integer,最大数据包大小;   ◆IPVersion:TIdIPVersion,UDP支持的IP协议版本;   ◆ReceiveTimeOut:Integer,等待读取socket时间;   ◆Active:Bo

文档评论(0)

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

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

1亿VIP精品文档

相关文档