用Winsock控件实现点对点通信.docVIP

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

????? ?用Winsock控件实现点对点通信??????????????? ?? ??????????????? 中科院研究生院(北京 100039)?? 郭旭 ???????????????? 要:? Winsock控件是一个Windows网络编程,与Sockets完全兼容的ActiveX控件,它提供了访问 TCP 和 UDP 网络服务的方便途径/服务器模型,但是点对点通信模式编程更简单,适合传输数据流少的场合,如控制测量等方面。本文提出了在VC++中用Winsock控件实现Internet中按照二进制数据格式点对点通信的一种常见的方案。 Winsock,点对点通信,网络编程 ?? 引言 随着计算机和Internet网络的发展,原先在测量、控制、消费等领域不同设备/仪器之间,大多采用RS232/485或现场总线组建网络等进行数据传输的情况正在改变,特别在要求数据传输速度和可靠性方面的应用产品,转向基于Internet网络的远程传输和应用。网络编程大多基于TCP/IP协议,实现方法有多种,复杂但编程适应性广的方法是调用底层的Winsock? API函数或MFC基本类等;简单方便的方法可以采用如Winsock控件。在网络编程中最常用的方案便是客户机/服务器模型,客户应用程序向服务器程序请求服务。另外一种模式是点对点通信,通信双方对等,既有客户机功能又有服务器的功能,编程简单,适合传输数据流少的场合,而且采用简单的UDP协议,易于用微控制器等嵌入式系统实现,在测量控制方面有许多应用。接下将介绍一些网络编程和Winsock控件知识,用VC++实现点对点通信。 二? Winsock介绍 ??? Windows Sockets接口是TCP/IP网络最为通用API,已成为Windows网络编程的事实上的标准。它以Unix中流行的Socket接口为范例定义了一套Microsoft Windows下网络编程接口函数库。它不仅包含了人们所熟悉的Berkeley Socket风格的库函数;也包含了一组针对Windows的扩展库函数,以使程序员能充分地利用Windows消息驱动机制进行编程。Socket实际在计算机中提供了一个通信端口,应用程序在网络上传输,接收的信息都通过这个Socket接口来实现。在应用开发中就像使用文件句柄一样,可以对Socket句柄进行读,写操作。 ?MicroSoft在Sockets API基础上创建了WinSock控件,专门用于Windows接口,与Sockets完全兼容。 WinSock 控件可以与远程计算机建立连接,Winsock包含有用户数据文报协议 (UDP)和传输控制协议 (TCP)。Winsock控件对用户来说是不可见的,它提供了访问 TCP 和 UDP 网络服务的方便途径。Winsock编写网络应用程序时,不必了解 TCP/IP的细节或调用低级的 Winsock APIs。通过设置控件的属性并调用其方法就可轻易连接到一台远程机器上去,并且还可双向交换数据。 Winsock控件的属性,方法和事件。 属性: LocalIP:本地的IP地址。 LocalPort:所用到的本地端口; Protocol:TCP或UDP协议。 RemoteHostIP:对方IP地址。 RemotePort:对方数据通信的端口。 ?? Listen:用于服务器程序,等待客户访问。 Bind:绑定IP地址和端口。 Connect:向远程主机发出连接请求。 Accept:接受一个连接请求。 Senddata:发送数据。 Getdata:取得接收到的数据。 Close:关闭当前连接。 ?? 事件: DataArrival:新数据到达。 ConnectionRequest:对方请求连接时接受连接请求。 Error:后台处理中出现错误。. Close :对方关闭连接时出现。 三? 网络通信协议基础 ?Winsock控件支持两种协议,TCP协议和UDP协议,都属于用TCP/IP协议。TCP(Transfer Control Protocol)是传输控制协议的简称,是基于连接的协议,在数据传输之前必须先建立连接,通信双方是基于/服务器模型,必须分别建立客户应用程序和服务器应用程序UDP(用户数据文报协议)协议是一种无连接协议,通信双方之间的传输类似于传递邮件:消息从一方发送到另一方,但是两者之间没有明确的连接,通信双方是对等的,单次传输的最大数据量取决于具体的网络。 Winsock控件创建双方的通信过程如下: TCP协议通信,需要分别建立客户应用程序和服务器应用程序。 IP 地址(RemoteHost 属性)和进行“”的端口(RemotePort 属性),然后调用 Connect 方法。 创建服务器应用程序,就应设置一个收听端口(Loc

文档评论(0)

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

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

1亿VIP精品文档

相关文档