第十六讲 Stoket编程精选.docVIP

  1. 1、本文档共6页,可阅读全部内容。
  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文档。上传文档
查看更多
第十六讲 Stoket编程精选

第十六讲 Stocket编程 Stocket套接字 提供对网络通信的基本操作,常用的类型有两种: 流式套接字 提供连接的、可靠的、数据无错并且无重复的数据发送服务,发送的数据按顺序接收。无长度限制线路占用率高。TCP协议使用这种接口。如网页浏览、下载文件。 数据报式套接字 提供面向无连接的服务,以独立的数据包形式发送数据,不提供正确性检查,不保证各数据包的发送顺序,可能出现数据的重发、丢失等现象。接收的顺序由路由决定,线路占用率低,数据包长度不能大于32KB.UDP协议使用这种接口,如QQ。 面向连接就像打电话,一直占线,先发先至。面向无连接就像寄信,只管收发,什么时候到由邮局定。与这个比方不同的是面向连接的方式为了保证安全可靠,速度不如无连接方式。 首先我们解释一下在网络编程时候,经常遇到的几个概念:同步(synchronous)、异步(asynchronous)、阻塞(Block)和非阻塞(Unblock): 所谓异步方式,就是发送方发送数据包以后,不等接受方响应,就接着发送下一个数据包。 同步方式就是当发送方发送一个数据包以后,一直等到接受方响应后,才接着发送下一个数据包。 阻塞套接字是指执行此套接字的网络调用时,直到调用成功才返回,否则此套节字就一直阻塞在网络调用上,比如调用StreamReader 类的Readlin ( 方法读取网络缓冲区中的数据,如果调用的时候没有数据到达,那么此Readlin ( 方法将一直挂在调用上,直到读到一些数据,此函数调用才返回; 非阻塞套接字是指在执行此套接字的网络调用时,不管是否执行成功,都立即返回。同样调用StreamReader 类的Readlin ( 方法读取网络缓冲区中数据,不管是否读到数据都立即返回,而不会一直挂在此函数调用上。 在Windows网络通信软件开发中,最为常用的方法就是异步非阻塞套接字。平常所说的C/S(客户端/服务器)结构的软件采用的方式就是异步非阻塞模式的。 网络通信地址 网络通信地址用对象IPEndPoint来表示,IPEndPoint类的成员有两个: Address属性:IP地址,不同的主机IP地址不同。 Port属性:端口号,同一主机的不同线程可通过不同的端口号,完成不同的通信处理。 通过IPHostEntry类,将一个域名(主机名)与一组IP地址关联。它有两个属性: AddressList属性:以一个IPAdress数组的形式存放了与域名相关联的IP地址列表。 HostName属性:即域名。 通过Dns类,向TCP/IP协议的应用程序提供域名服务。常用的静态方法有三个: GetHostName:返回主机名称。 GetHostByName:获取由参数指定的主机名的DNS信息,返回IPHostEntry类型的对象。 Resolve:域名解析,将由参数指定的域名转换为IP地址,返回IPHostEntry类型的对象。 常用的属性和方法 属性 说明 AddressFamily 获取Socket的地址族。 *Available 获取已经从网络接收且可供读取的数据量。 *Blocking 获取或设置一个值,该值指示Socket是否处于阻塞模式。 *Connected 获取一个值,该值指示Socket是否已连接到远程资源。 Handle 获取Socket的操作系统句柄。 *LocalEndPoint 获取本地终结点。 ProtocolType 获取Socket的协议类型。 *RemoteEndPoint 获取远程终结点。 SocketType 获取Socket的类型。 方法 说明 *Accept 创建新的Socket以处理传入的连接请求。 BeginAccept 开始一个异步请求,以创建新的Socket来接受传入的连接请求。 BeginConnect 开始对网络设备连接的异步请求。 BeginReceive 开始从连接的Socket中异步接收数据。 BeginReceiveFrom 开始从指定网络设备中异步接收数据。 BeginSend 将数据异步发送到连接的 BeginSendTo 向特定远程主机异步发送数据。 *Bind 使Socket与一个本地终结点相关联。 *Close 强制Socket连接关闭。 *Connect 建立到远程设备的连接。 *DisConnect 建立到远程设备的连接。 EndAccept 结束异步请求以创建新的Socket来接受传入的连接请求 EndConnect 结束挂起的异步连接请求。 EndReceive 结束挂起的异步读取。 EndReceiveFrom 结束挂起的、从特定终结点进行异步读取。 EndSend 结束挂起的异步发送 EndSendTo 结束挂起的

文档评论(0)

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

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

1亿VIP精品文档

相关文档