c#网络应用编程第06章 UDP应用编程
c#网络应用编程第06章 UDP应用编程
1
第6章 UDP应用编程6.1 UDP基础知识
6.2 UDP应用编程技术6.3 利用UDP协议进行广播和组播
c#网络应用编程第06章 UDP应用编程
2
本章重点 本章教学目的
学习UDP基础知识 ,利用UdpClient类完成单播、组播和广播。 本章教学要求 (1)掌握UDP协议同TCP协议相比的优缺点。
(2)掌握组播和广播的概念(3)掌握UdpClient实现单播发送数据和接收数据的方法。 (4)掌握UdpClient类实现组播及广播通信的方法。
教学难点和重点 UDP协议同TCP协议相比的优缺点,利用UdpClient类完成单播、组播和广 播。
c#网络应用编程第06章 UDP应用编程
3
6.1
UDP与TCP的区别
UDP(User Datagram Protocol,用户数据报协议) 是一个简单的、面向数据报的无连接协议,提供 了快速但不一定可靠的传输服务。 UDP与TCP相比主要有以下区别。1.UDP速度比TCP快 2.UDP有消息边界
3.UDP可以一对多传输4.UDP可靠性不如TCP 5.UDP不像TCP那样能保证有序传输
c#网络应用编程第06章 UDP应用编程
4
6.1
UDP与TCP的区别(续)
UDP速度比TCP快
由于UDP不需要先与对方建立连接,也不需要传输确认, 因此其数据传输速度比TCP快得多。 UDP有消息边界
使用UDP不需要考虑消息边界问题,使用上比TCP简单 UDP可以一对多传输 利用UDP可以使用广播或组播的方式同时向子网上的所 有客户发送信息。这一点也比TCP方便。
c#网络应用编程第06章 UDP应用编程
5
6.1
UDP与TCP的区别(续)
UDP可靠性不如TCP
与TCP不同,UDP并不提供数据传送的保证机制。如果 在从发送方到接收方的传递过程中出现数据报的丢失,协 议本身并不能做出任何检测或提示。因此,通常人们把UDP 称为不可靠的传输协议。 UDP不像TCP那样能保证有序传输 UDP不能确保数据的发送和接收顺序。对于突发性的数 据报,有可能会乱序。事实上,UDP的这种乱序性基本上很 少出现,通常只会在网络非常拥挤的情况下才有可能发生。
c#网络应用编程第06章 UDP应用编程
6
6.1
UDP与TCP的区别(续)UDP TCP面向连接 需要建立连接,速度较慢 仅能一对一
连接 速度 目的主机
无连接 无需建立连接,速度 较快 一对一,一对多
带宽
UDP报头较短,消耗 带宽更少有 低 无序
消耗更多的带宽
消息边界 可靠性 顺序
无 高 有序
c#网络应用编程第06章 UDP应用编程
7
6.2
UDP应用编程技术
6.2.1 6.2.2
UdpClient类 同步发送和接收数据
6.2.3
异步发送和接收数据
c#网络应用编程第06章 UDP应用编程
8
6.2.1 UdpClient类 UdpClient类提供了发送和接收无连接的UDP数据报的方便的方法。封装了底层的套接字,并分别提供了对套接字进一步 封装后的同步和异步操作的方法,降低了UDP应用编程的难 度。 与TCP协议有TcpListener类和TcpClient类不同,UDP协议只 有UdpClient类,这是因为UDP协议是无连接的协议,所以只
需要一种Socket。
c#网络应用编程第06章 UDP应用编程
9
6.2.1 UdpClient类(续) 位于http://www.77cn.com.cn.Sockets命名空间下
构造函数有四种
重载形式。编写客户端程序时,常用形式 为: UdpClient UdpClient=new UdpClient(“http://www.77cn.com.cn”, 51888) 它相当于: UdpClient udpClient=new UdpClient(); udpClient.Connect("http://www.77cn.com.cn", 51888); 思考:UDP的Connect和TCP的Connect有什么不同?
c#网络应用编程第06章 UDP应用编程
10
6.2.1 UdpClient类(续)(1)public UdpClient(int port)
自动分配合适的本地IPv4地址,并将基础socket与指定的 本地端口号绑定。例如:UdpClient udpClient = new UdpClient(51666);
如果仅仅是为了发送数据报,而且接收方又能接收任何远 程端口发送给它的数据报,在这种情况下,可以将本地端 口号指定为0,表示让系统自动为其分配一个合适的端口号。 由于这种形式不需要我们考虑指定的端口号是否会产生冲 突,因此这是创建UdpClient对象最方便的方式。
c#网络应用编程第06章 UDP应用编程
11
6.2.1 UdpClient类(续)(2)public UdpClient(IPEndPoint localEp)
与包含本地IP地址和端口号的IPEndPoint实例绑定。 例如: IPAddress address = Dns.GetHostAddresses(Dns.GetHostN ame())[0]; IPEndPoint iep = new IPEndPoint(address, 51666); UdpClient udpClient =new UdpClient(iep);
注意:如果创建的UdpClient对象主要用于接收远程主机向本 机指定端口发送来的数据报,使用这种方式比较合适。这是 因为端口号是固定的,只要远程主机知道本机的域名或IP地 址,它就可以直接向本机的指定端口发送数据报。
c#网络应用编程第06章 UDP应用编程
12
6.2.1 UdpClient类(续)(3)public UdpClient(string hostname, int port)
自动分配合适的本地IP地址和端口号,用于收发数据,并 使用hostname和port参数建立默认远程主机。例如:UdpClient udpClient = new UdpClient("http://www.77cn.com.cn", 11000);
适用于向默认远程主机发数据,或者只接收默认远程主机 发来的数据,而其他主机发送来的数据报自动丢弃的场合。 使用这种构造函数,调用UdpClient对象的Send方法发送数 据报时,不能在Send参数中再指定远程主机,否则会引发 异常。当需要改变发送目标时,可以调用Connect方法重新 建立新的默认远程主机。
c#网络应用编程第06章 UDP应用编程
13
6.2.1 UdpClient类(续)(4)public UdpClient() 自动分配合适的本地IPv4地址和端口号,但是该构造函数不 执行套接字绑定。如果使用这种构造函数,在发送数据报之 前,必须先调用Connect方法,且只能将数据报发送到Connec t方法建立的远程主机。例如:UdpClient udpClient = new UdpClient(); //指定默认远程主机和端口号 udpClient.Connect("http://www.77cn.com.cn", 51666); Byte[] sendBytes = Encoding.Unicode.GetBytes("你好!"); //发送给默认远程主机 udpClient.Send(sendBytes, sendBytes.Length);
注意:由于这种构造函数不执行套接字绑定,因此如果希望 加入多路广播组,不要使用这种构造函数。
c#网络应用编程第06章 UDP应用编程
14
6.2.1 UdpClient类(续) UdpClient类的常用方法和属
性Connect方法 建立默认远程主机。因为UDP是无连接的, 所以不会阻止调用该方法的线程。另外,如 果打算接收多路广播数据报,不要调用 Connect方法,否则从指定的默认地址以外 的地址到达的任何数据报都将被丢弃。但是, 如果在调用Send方法时指定了 IPAddress.Broadcast,则可以将数据广播 到默认的广播地址255.255.255.255 发送数据报
Send方法
Receive方法 接收数据报 BeginSend方法 开始从连接的socket中异步发送数据报 BeginReceive方法 开始从连接的socket中异步接收数据报
c#网络应用编程第06章 UDP应用编程
15
相关推荐:
- [公文资料]市场营销专员岗位职责
- [公文资料]综合部经理岗位职责
- [公文资料]会计助理岗位职责
- [公文资料]林业站站长职责
- [公文资料]菜品研发部岗位职责
- [公文资料]街道综治办工作职责
- [公文资料]酒店前台的工作职责
- [公文资料]销售部经理岗位职责
- [公文资料]工程部副经理岗位职责
- [公文资料]手术室护士工作职责
- [公文资料]银行客户经理职责
- [公文资料]汽车4s店市场专员职责
- [公文资料]服装店长工作职责
- [公文资料]采购总监岗位职责
- [公文资料]大学行政秘书工作职责
- [公文资料]学校财务人员岗位职责
- [公文资料]财务统计员岗位职责
- [公文资料]物业工程主管工作职责
- [公文资料]公司后勤工作职责
- [公文资料]采矿工程师岗位职责
- 门面出租合同样板(门面出租的合同)
- 自用房屋租赁合同 自住房租房合同(汇总
- 最新酒店劳动合同管理制度(11篇)(酒店
- 2025年无产权车库买卖合同实用(14篇)(
- 建筑工程农民工劳动合同十五篇(通用)(
- 最新深圳标准劳动合同 深圳劳动合同如
- 解除劳动合同通知书(实用6篇)(解除劳动
- 2025年二手房屋买卖合同范围精选(二十
- 最新融资贷款居间合同大全(22篇)(融资
- 2025年个人二手房屋买卖合同协议书四篇
- 2025年果树苗木买卖合约书 签订果树苗
- 广东省劳动合同书填写(21篇)(广东省劳
- 最新餐饮行业没有劳动合同 劳动法餐饮
- 农村土地买卖合同(汇总21篇)(农村土地
- 最新房屋转租合同模版21篇(通用)(标准
- 2025年进口合同号查询五篇(大全)(进口
- 农村建房包工包料合同(通用8篇)(农村建
- 2025年安装监控合同协议书(15篇)(2025
- 2025年企业租赁经营合同(模板9篇)(2025
- 最新郊区土地租赁合同(优质23篇)(最新




