- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
网络编程C#篇
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
网络编程C#篇(一):TCP/UDP
由于最近的爱好,重新被激发,所以开始,写关于网络编程方面的知识。近段主
要想写一下C#方面的网络编程,有什么不对,请高手们指正。
基础篇:
关于这方面的文章主要是一个理论知识,重在理解。由于,本人的文笔有
限。所以,有什么不对,还请大家更正。
网络编程主要是用到了两个协议:TCP和UDP
TCP编程的特点:
对于TCP,要记住的最重要的事情是它是一个面向链接的协议。两个
设备之间一旦已经存在链接,就会形成一个可靠的数据流,保证数据从一个设备
准确的移送到 另一个设备。虽然使用TCP的用户不用担心数据的丢失和错位。
但是,使用TCP编程的时候,需要的考虑的大问题是:缓冲区。
由于TCP必须保证数据的完整性,所以,在从远程设备收到“已收到
数据”的肯定的应答信息之前,它一直把所有发送的数据都存放在一个本地缓冲
器中。同样 地,当从网络接收数据的时候,TCP也必须有一个接收数据的本地
缓冲器,以保证在把数据递送给应用程序之前所有的数据块是按顺序接收的。由
于这个单独的 TCP缓冲器,在用户程序与远程主机上目的程序之间移动数据操
作起来显得比预期的困难一些。所以,无论是发送方还是接收方数据在发送或者
接收的时候都会先 放在缓冲区中。但是,TCP不保留数据消息的界线(数据块
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
之间的边界),即缓冲区中的数据块被作为一个包发送。所以编程者必须在自己
的网络程序中加以弥 补。
UDP编程的特点:
创建UDP就是为了解决TCP的消息边界问题。UDP保留了从应用程序
发送到网络上的所有消息的数据边界。由于 UDP的特殊设计,不担心可靠数据
的传输问题,它不需要使用本地缓冲器保留发送的或接收的数据。代替的做法是,
当从应用程序接收到消息时,每条消息都作为 一个单独的包转发。同样,从网
络上收到的每条消息也作为一个单独的包转发给应用程序。UDP在网络包中保
留了消息的边界。但是,由于UDP不保证数据的传 递,所以如果涉及到数据到
达目的地的问题,用户应用程序必须执行那种功能。因为一台设备发出了UDP
数据包并不一定意味着接收设备收到数据包,所以用户必 须保证用户的程序能
够处理丢失包的问题。
当程序需要分清服务器和客户机的时候,最好使用TCP协议,而UDP一
般是在主次不是分的很清楚(即关系平等)的时候用到。
本文出自 “F_Pirate” 博客,请务必保留此出处
/133022/37651
网络编程C#篇(二):Socket
Socket篇:
System.Net.Sockets命名空间包含一些可以给低级的Winsock API提供实
际.NET接口类.
Generated by Foxit PDF Creator © Foxit Software
For evaluation only.
(1)套接字的结构:
System.Net.Sockets命名空间的核心是Socket(套接字)类。它提供了
Winsock API的C#管理代码的实现。Socket类的构造函数如下:
Socket(AddressFamilyaf,SocketType st,ProtocolTypept)
它用三个参数定义创建的套接字类型:
用AdressFamily定义网络的类型
用SocketType定义数据连接的类型
用ProtocolType指定具体的网络协议
这些参数的每一个都可以用System.Net.Sockets命名空间中一个单独的
枚举来表现。
文档评论(0)