



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Java网络编程之UDP网络通信详解目录1.UDP网络通信编程原理1.1UDP网络通信编程介绍1.2UDP网络通信编程的基本流程2.UDP网络通信编程案例
1.UDP网络通信编程原理
1.1UDP网络通信编程介绍
类DatagramSocket何DatagramPacket(数据包/数据报)实现了基于UDP协议网络程序;
UDP数据报通过数据报套接字DatagramSocket发送和接收,系统不保证UDP数据报一定能够安全送达目的地,也不确定什么时候可以抵达;
DatagramPacket对象封装了UDP数据报,在数据报中包含了发送端IP地址和端口号,以及接收端的IP地址和端口号;
UDP协议中每个数据报都给出了完整的地址信息,因此无法建立发送方与接收方的连接。
没有明确的服务端和客户端,演变成数据的发送端和接收端;
接收数据和发送数据都是通过DatagramSocket对象完成。
1.2UDP网络通信编程的基本流程
核心的两个类/对象,DatagramSocket与DatagramPacket;
建立发送端和接收端;
建立数据包;
调用DatagramSocket的发送和接收方法;
关闭DatagramSocket。
2.UDP网络通信编程案例
1.编写一个接收端A,一个发送端B;
2.接收端在9999端口等待接收数据(receive);
3.发送端向接收端发送数据:你好!接收端
4.接收端接收到发送端的数据后,回复:你好!发送端,再退出;
5.发送端接收回复的数据,退出。
UDPReceiverA
importjava.io.IOException;
import.DatagramPacket;
import.DatagramSocket;
import.InetAddress;
*@author兴趣使然黄小黄
*@version1.0
*接收端A
publicclassUDPReceiverA{
publicstaticvoidmain(String[]args)throwsIOException{
//1.创建一个DatagramSocket对象,准备在9999接收数据
DatagramSocketsocket=newDatagramSocket(9999);
//2.构建一个DatagramPacket对象,准备接收数据
byte[]buf=newbyte[1024];
DatagramPacketpacket=newDatagramPacket(buf,buf.length);
//3.调用接收方法,将通过网络传输的DatagramPacket对象填充到packet对象
System.out.println("接收端A等待接收数据...");
socket.receive(packet);
//4.把packet进行拆包,取出数据
intlength=packet.getLength();//实际数据字节长度
byte[]data=packet.getData();//实际接收的数据
Strings=newString(data,0,length);
System.out.println(s);
//回复信息给B端
data="你好!发送端".getBytes();
packet=newDatagramPacket(data,0,data.length,
InetAddress.getLocalHost(),9998);
socket.send(packet);
//5.关闭资源
socket.close();
UDPSenderB
importjava.io.IOException;
import.*;
*@author兴趣使然黄小黄
*@version1.0
*发送端B
publicclassUDPSenderB{
publicstaticvoidmain(String[]args)throwsIOException{
//1.创建DatagramSocket对象,准备在9998发送和接收数据
DatagramSocketsocket=newDatagramSocket(9998);
//2.将需要发送的数据,封装到DatagramPacket中
byte[]data="你好!接收端".getBytes();
DatagramPacketdatagramPacket=
newDatagramPacket(data,0,data.length,
InetAddress.getLocalHost(),9999);
socket.send(datagramPacket);
//接收A消息
socket.receive(datagramPacket);
intlength=datagramPacket.getLength();//实际数据字节长度
data=datagramP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 行政管理2025年公共关系学重要试题
- 2025年中级经济师考试真题解析试题及答案
- 市政工程施工安全知识试题及答案
- 启发思维的2025年工程项目管理试题及答案
- 工程经济中的合同经济评估实务试题及答案
- 2025年工程项目管理学习方法试题及答案
- 工程项目管理考试分数提升试题及答案
- 理论与实践结合的2025年工程经济试题及答案
- 行政管理公共关系实践考查试题及答案
- 工程项目管理的基本原则试题及答案
- 高效课堂新授课评价量化表
- 信和SDS2MS使用说明书
- 维修手册震旦218现场
- 画法几何与阴影透视复习题(DOC)
- 螺旋密封的设计及在流体机械中的应用
- 青岛市失业人员登记表
- 烧结机工程施工设计方案
- 《中国好声音》全国校园海选招商方案(冠名)
- 广西安全文明施工费使用管理细则桂建质新版
- 存货质押贷款业务管理规定
- 公路路面基层施工技术规范JTJ034-93条文说明
评论
0/150
提交评论