C#网络编程技术教程

C#网络编程技术教程

ID:248722

大小:551.00 KB

页数:49页

时间:2017-07-14

C#网络编程技术教程_第1页
C#网络编程技术教程_第2页
C#网络编程技术教程_第3页
C#网络编程技术教程_第4页
C#网络编程技术教程_第5页
资源描述:

《C#网络编程技术教程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、C#网络编程技术教程第六章TCP/UDP编程学习目标了解TCP和UDP。掌握C#中面向TCP和UDP编程的主要类:TcpClient、TcpListener和UdpClient。掌握TcpClient、TcpListener和UdpClient的编程方法。了解多播的原理,掌握基于UdpClient的多播编程方法。本章内容6.1TCP/UDP概述6.2.NET中的TCP编程基础6.3基于TCP的编程实例6.4.NET中的UDP编程基础6.5多播编程6.1TCP/UDP概述在TCP/IP协议族中,传输层主要包括TCP和

2、UDP两种通信协议,它们以不同的方式实现两台主机中的不同应用程序之间的数据传输,即数据的端到端传输。由于它们的实现方式不同,因此各有一套属于自己的端口号,且相互独立。可以采用如下五元组来描述两个应用进程之间的通信关联。(协议,信源机IP地址,信源应用进程端口,信宿机IP地址,信宿应用进程端口)即端到端之间的一条通信连接就可以表示为上述五元组,这也是进行网络程序设计最基本的概念。其中,传输控制协议(TransmissionControlProtocol,TCP)提供一种面向连接的、可靠的数据传输服务,保证了端到端数据

3、传输的可靠性。也正因为这样,使TCP协议成为传输层最常用的协议,同时也是一个比较复杂的协议,其提供了传输层几乎所有的功能。因此和IP协议一样,成为了TCP/IP协议族中最重要的协议之一。其主要特点如下:(1)向应用进程提供面向连接的服务,两个需要通过TCP协议进行数据传输的应用进程之间首先必须建立一个TCP连接,并且在数据传输完成后要释放连接。一般将请求连接的应用进程称为客户进程,而响应连接请求的应用进程称为服务器进程,即TCP连接的建立采用的是一种客户机/服务器工作模型。(2)提供全双工数据传输服务,只要建立了T

4、CP连接,就能在两个应用进程间进行双向的数据传输服务,但是这种传输只是端到端的传输,不支持广播和多播。6.1TCP/UDP概述(3)提供面向字节流的服务,即TCP协议的数据传输是面向字节流的,两个建立了TCP连接的应用进程之间交换的是字节流。发送进程以字节流形式发送数据,接收进程也把数据作为字节流来接收。端到端之间不保留数据记录的边界,也就是说,在传输的层面上不存在数据记录的概念。用户数据报协议(UserDatagramProtocol,UDP)是传输层的两个主要协议之一,相对TCP协议来说,UDP是一种非常简单的

5、协议,在网络层的基础上实现了应用进程之间端到端的通信。与TCP协议不同,UDP协议是一种无连接的协议,数据在传输之前通信双方不需要建立连接。信宿在收到UDP数据报之后也不需要给出任何应答报文。发送方发出的每一个UDP用户数据报都是独立的,都携带了完整的目的地址。每个数据报都可以被网络系统独立路由。因此从同一个信源发往同一个信宿的多个UDP报文可能选择不同的路径达到信宿,它们达到的先后顺序也可能不同于发送顺序。所以,UDP协议提供的是一种无连接的、不可靠的数据传输方式,在数据传输过程中没有流量控制和确认机制,数据报可

6、能会丢失、延迟、乱序到达信宿。UDP协议只是提供了利用校验和检查数据完整性的简单差错控制,属于一种尽力而为的数据传输方式。虽然UDP用户数据报只提供不可靠的传输方式,但它具有其自身的一些特点:(1)UDP是一个无连接协议,传输数据之前信源和信宿不需要建立连接,因此不存在连接建立的时延。在信源端,UDP传送数据的速度仅仅受应用程序生成数据的速度、计算机的能力和传输带宽的限制;在信宿端,UDP把每个数据报放在队列中,应用程序每次从队列中读一个数据报。6.1TCP/UDP概述(2)由于传输数据不需要建立连接,也就不需要维

7、护连接状态,包括收发状态等,这样一台服务机可同时向多个客户机传输相同的数据,例如实现多播。(3)UDP数据报的首部很短,只有8字节,相对于TCP的20字节首部的开销要小很多。(4)吞吐量不受流量控制算法的调节,只受应用软件生成数据的速率、传输带宽、信源和信宿主机性能的限制。由于UDP具有这些特点,有许多应用更适合使用UDP协议,如:(1)只需要简单数据交换的应用,例如DNS服务,它不需要复杂的可靠性保证机制,这样,利用UDP来传输数据既可以节省系统开销又提高了网络的传输效率。(2)不需要关心数据的差错控制和流量控制

8、的应用。(3)实时性要求较高但可承受一定的数据错误的应用,例如实时语音传输、实时视频通信等。(4)实现一对多数据发送的应用,例如广播和组播。6.2.NET中的TCP编程基础6.2.1TcpClient类TcpClient类为TCP网络服务提供客户端连接,它构建于Socket类之上,以提供较高级别的TCP服务,即提供了通过网络连接、发送和接收数据的简单方法。用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。