《CSOCKET同步异步通讯与多线程总结.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文档。上传文档
查看更多
《CSOCKET同步异步通讯与多线程总结

C# SOCKET同步异步通讯与多线程总结 Socket支持下的网上点对点的通信 服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能 服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。 客户端建立一个socket,设置好服务器端的IP和提供服务的端口,发出连接请求,接收到服务的确认后,尽力连接,开始与服务器进行通信。 服务器端和客户端的连接及它们之间的数据传送均采用同步方式。 ? Socket Socket是tcp\ip网络协议接口。内部定义了许多的函数和例程。可以看成是网络通信的一个端点。在网络通信中需要两个主机或两个进程。通过网络传递数据,程序在网络对话的每一端需要一个socket。 ?????? Tcp/IP传输层使用协议端口将数据传送给一个主机的特定应用程序,协议端口是一个应用程序的进程地址。传输层模块的网络软件模块要于另一个程序通信,它将使用协议端口,socket是运行在传输层的api,使用socket建立连接发送数据要指定一个端口给它。 Socket: Stream Socket流套接字 Socket提供双向、有序、无重复的数据流服务,出溜大量的网络数据。 Dgram socket数据包套接字 支持双向数据流,不保证传输的可靠性、有序、无重复。 Row socket 原始套接字 访问底层协议 建立socket 用C# 命名空间: using System.Net;using System.Net.Socket; 构造新的socket对象:socket原型: Public socket (AddressFamily addressFamily,SocketType sockettype,ProtocolType protocolType) 参数 描述 AddressFamily 用来指定socket解析地址的寻址方案。Inte.Network标示需要ip版本4的地址,Inte.NetworkV6需要ip版本6的地址 SocketType 参数指定socket类型Raw支持基础传输协议访问,Stream支持可靠,双向,基于连接的数据流。 ProtocolType 表示socket支持的网络协议 ?定义主机对象: IPEndPoint类:IPEndPoint构造方法? 位置:System.Net 原型: 1)??public IPEndPoint(IPAddress address,int port)???? 2)? public IPEndPoint(long address,int port) //参数1整型int64如123456,参数2端口int32 主机解析: 利用DNS服务器解析主机,使用Dns.Resolve方法 原型:public static IPHostEntry Resolve(string hostname) 参数:待解析的主机名称,返回IPHostEntry类值,IPHostEntry为Inte.Net主机地址信息提供容器,该容器提供存有IP地址列表,主机名称等。 Dns.GetHostByName获取本地主机名称 原型:public static IPHostEntry GetHostByName(string hostname) GetHostByAddress 原型: 1)? public static IPHostEntry GetHostByAddress(IPAddress address) //参数:IP地址 2)? public static IPHostEntry GetHostByAddress(string address)? // IP地址格式化字符串 ? 端口绑定和监听: 同步套接字服务器主机的绑定和端口监听 Socket类的Bind(绑定主机),Listen(监听端口),Accept(接收客户端的连接请求) Bind:原型:public void Bind(EndPoint LocalEP)参数为主机对象 IPEndPoint Listen:原型:public void Listen(int backlog) 参数整型数值,挂起队列最大值 accept:原型:public socket accept() 返回为套接字对象 演示程序: IPAddress myip=IPAddress.Parse(); IPEndPoint myserver=new IPEndPoint(myip,2020); Socket sock=new Socket(AddressFamily.Inte.Network,Socke

文档评论(0)

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

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

1亿VIP精品文档

相关文档