欢迎来到天天文库
浏览记录
ID:6131865
大小:1.31 MB
页数:34页
时间:2017-11-15
《p4 基于udp协议的程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机网络编程技术第4章基于UDP协议的程序设计6/12/20211引子----UDP协议的应用领域?实时传输:网络视频会议?IP电话:VOIP?网络信息分发:股票信息、航空信息部分应用层协议的基础6/12/20212本章的主要内容回顾UDP协议的基本特点学习使用UdpClient类进行单播通信编程广播通信编程技术多播通信编程技术6/12/202134.1UDP协议介绍(1)UDP协议提供服务的特点:①是无连接协议,可靠性不如TCP协议;②不需要维护连接状态,可同时向多个客户机发送相同的信息;③数据包的报头很短,适于快速传输;④
2、吞吐量不受拥挤控制算法调节;⑤广播和多播;6/12/20214(2)单播、广播和多播单播是端对端,能够穿透子网;广播限于子网内;多播向多个子网发送信息。单播和多播比较:6/12/20215(3)UDP协议的数据格式6/12/202164.2使用UdpClient类进行编程(1)回顾典型数据报套接字调用流程6/12/20217(2)UdpClient类的应用方法//第一阶段:创建UdpClient实例UdpClientudpClient=newUdpClient();IPAddressremoteAddress=IPAddress
3、.parse("127.0.0.1");IPEndPointiep=newIPEndPoint(remoteAddress,8000);//第二阶段:数据发送byte[]sendBytes=System.Text.Encoding.Unicode.GetBytes("注意休息!");udpClient.Send(sendBytes,sendBytes.Length,remoteAddress);//第二阶段:数据接收IPEndPointiep2=newIPEndPoint(IPAddress.Any,0);Byte[]recei
4、veBytes=udpClient.Receive(refiep2);stringgetData=System.Text.Encoding.Unicode.GetString(receiveBytes);...//第三阶段:关闭udpClient.Close();6/12/20218(2)UdpClient类的其他3种实例构造方法方法1:IPAddressremoteAddress=IPAddress.parse("127.0.0.1");UdpClientudpClient=newUdpClient("remoteAddres
5、s",8000);方法2:UdpClientudpClient=newUdpClient();udpClient.Connect("www.software.org",8000);方法3,最简单:UdpClientudpClient=newUdpClient("www.software.org",8000);此时,由于明确了远程主机上的进程,所以Send方法的调用更为简单:udpClient.Send(tmpBytes,tmpBytes.Length);6/12/20219(3)应用实例:P91-93是一个简单的控制台应用程序。
6、客户机界面服务器界面6/12/2021104.3网络广播程序设计(1)广播地址如何描述?广播地址分为:全球广播:255.255.255.255.被路由器过滤,只能在本地子网中广播;直接广播:A、B、C类IP地址中主机好为全1的地址为直接广播地址;6/12/202111直接广播地址的应用原理如果有多个进程都发送广播数据,则该子网将会阻塞,影响到网络性能,这是广播方式的缺点。6/12/202112(2)广播程序设计:P94-97为了实现广播通信,需要:指定广播地址;在套接字函数setSocketOption()中设置广播选项;使用r
7、ecvfrom和sendto等函数收发广播数据;6/12/2021131)程序运行界面:P95发送端:接收端:6/12/2021142)发送广播消息程序Socketsocket=newSocket(AddressFamily.InterNetwork,SocketType.Dgram,ProtocolType.Udp);IPEndPointiep=newIPEndPoint(IPAddress.Broadcast,8000);//设置Broadcast值为表示允许套接字发送广播信息,该值默认为(不允许)socket.SetSoc
8、ketOption(SocketOptionLevel.Socket,SocketOptionName.Broadcast,1);//将发送内容转换为字节数组byte[]sendBytes=System.Text.Encoding.Unicode.GetByte
此文档下载收益归作者所有