WinSock控件及WinSockAPI的使用.docVIP

  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文档。上传文档
查看更多
WinSock控件及WinSockAPI的使用

二,WinSock控件的使用 1.WinSock控件的主要属性 a.Protocol属性 ?? 通过Protocol属性可以设置WinSock控件连接远程计算机使用的协议。可选的协议是TCP和UDP对应的VB的常量分别是sckTCPProtocol和sckUDPProtocol,Winsock控件默认协议是TCP。注意:虽然可以在运行时设置协议,但必须在连接未建立或断开连接后。 b.SocketHandle属性 ?? SocketHandle返回当前socket连接的句柄,这是只读属性。 c.RemoteHostIP属性 ?? RemoteHostIP属性返回远程计算机的IP地址。在客户端,当使用了控件的Connect方法后,远程计算机的IP地址就赋给了RemoteHostIP属性,而在服务器端,当ConnectRequest事件后,远程计算机(客户端)的IP地址就赋给了这个属性。如果使用的是UDP协议那么当DataArrival事件后,发送UDP报文的计算机的IP才赋给了这个属性。 d.ByteReceived属性 ?? 返回当前接收缓冲区中的字节数 e.State属性 ?? 返回WinSock控件当前的状态 ?? 常数????????????????????????????????值????描述 ?? sckClosed??????????????????????????0???? 缺省值,关闭。 ?? SckOpen?????????????????????????? 1???? 打开。 ?? SckListening?????????????????????? 2???? 侦听 ?? sckConnectionPending???????? 3???? 连接挂起 ?? sckResolvingHost????????????????4???? 识别主机。 ?? sckHostResolved???????????????? 5???? 已识别主机 ?? sckConnecting????????????????????6???? 正在连接。 ?? sckConnected????????????????????7???? 已连接。 ?? sckClosing??????????????????????????8???? 同级人员正在关闭连接。 ?? sckError???????????????????????????? 9   错误 2.WinSock主要方法 a.Bind方法 ?? 用Bind方法可以把一个端口号固定为本控件使用,使得别的应用程序不能再使用这个端口。 b.Listen方法 ?? Listen方法只在使用TCP协议时有用。它将应用程序置于监听检测状态。 c.Connect方法 ?? 当本地计算机希望和远程计算机建立连接时,就可以调用Connect方法。 ?? Connect方法调用的规范为: ?? Connect RemoteHost,RemotePort d.Accept方法 ?? 当服务器接收到客户端的连接请求后,服务器有权决定是否接受客户端的请求。 e.SendData方法 ?? 当连接建立后,要发送数据就可以调用SendData方法,该方法只有一个参数,就是要发送的数据。 f.GetData方法 ?? 当本地计算机接收到远程计算机的数据时,数据存放在缓冲区中,要从缓冲区中取出数据,可以使用GetData方法。GetData方法调用规范如下: ?? GetData data,[type,][maxLen] ?? 它从缓冲区中取得最长为maxLen的数据,并以type类型存放在data中,GetData取得数据后,就把相应的缓冲区清空。 g.PeekData方法 ?? 和GetData方法类似,但PeekData在取得数据后并不把缓冲区清空。 3.Winsock控件主要事件 a.ConnectRequest事件 ?? 当本地计算机接收到远程计算机发送的连接请求时,控件的ConnectRequest事件将会被触发。 b.SendProgress事件 ?? 当一端的计算机正在向另一端的计算机发送数据时,SendProgress事件将被触发。SendProgress事件记录了当前状态下已发送的字节数和剩余字节数。 c.SendComplete事件 ?? 当所有数据发送完成时,被触发。 d.DataArrival事件 ?? 当建立连接后,接受到了新数据就会触发这个事件。注意:如果在接受到新数据前,缓冲区中非空,就不会触发这个事件。 e.Error事件 ?? 当在工作中发生任何错误都会触发这个事件。 例子见附件三,WinSockAPI的使用

文档评论(0)

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

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

1亿VIP精品文档

相关文档