java-UDP协议接收和发送数据
UDP发送数据的步骤:
A:创建发送端的Socket服务对象
B:创建数据,并把数据打包
C:通过Socket对象的发送功能发送数据包
D:释放资源
public class SendDemo {
public static void main(String[] args) throws IOException {
//创建发送端的Socket服务对象
//public DatagramSocket()
DatagramSocket ds = new DatagramSocket();
//创建数据,并把数据打包
//public DatagramPacket(byte[] buf,int Length,InetAddress address,int port)
//buf其实就是要发送的数据信息
//length表示要发送的数据长度
//address数据要发到哪里去,对应的哪个IP地址对象
//port端口号
//byte[] bys = "***".getBytes();
//int length = bys.length;
//InetAddress address = InetAddress.getByName("***.***.**.***");
//int port = 10086;
//DatagramPacket p = new DatagramPacket(bys,length,address,port);
//封装键盘录入
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String line = null;
while((line = br.readLine())!= null) {
byte[] bys = line.getBytes();
DatagramPacket dp = new DatagramPacket(bys, bys.length, InetAddress.getByName("000.000.00.000"), 10010);
//通过Socket对象的发送功能发送数据包
//public void send(DatagramPacket p)
ds.send(dp);
}
//释放资源
ds.close();
}
}
UDP接收数据的步骤:
A:创建接收端的Socket服务对象
B:创建一个数据包,用于接收数据
C:接收数据
D:解析数据,并显示在控制台
E:释放资源
public class ReceiveDemo {
public static void main(String[] args) throws IOException {
//创建接收端的Socket服务对象,并且指定端口号
DatagramSocket ds = new DatagramSocket(10010);
while(true){
//创建一个数据包,用于接收数据
byte[] bys = new byte[1024];
DatagramPacket dp = new DatagramPacket(bys, bys.length);
//接收数据
ds.receive(dp);
//解析数据
//获取ip地址
String ip = dp.getAddress().getHostAddress();
//获取数据
String data = new String(dp.getData(),0,dp.getLength());
System.out.println("from " + ip + " data is " + data);
}
//释放资源(服务器一般永远是开着的)
//ds.close();
}
}
最新文章
- [转]Patch文件结构详解
- Redis3.0 配置文件说明
- <;<;软技能,代码之外的生存技能>;>;读书笔记
- 解剖SQLSERVER 第十四篇 Vardecimals 存储格式揭秘(译)
- App接口简介
- ping 有端口的ip
- 抓包工具Fidder设置(移动端抓包)
- openerp 经典收藏 Openerp开发进销存系统完毕总结(转载)
- 16% off MPPS V16 ECU tuning tool for EDC15 EDC16 EDC17
- jQuery&;nbsp;Ajax&;nbsp;实例&;nbsp;全解析
- 用一条SQL语句取出第 m 条到第 n 条记录的方法
- Android Service学习之IntentService 深入分析
- Git:常用功能 - 命令行
- # 团队作业8——第二次项目冲刺(Beta阶段)--5.27 seventh day
- C++课程设计类作业3
- 连接mysql数据库报错java.sql.SQLException: The server time zone value &#39;�й���ʱ��&#39; is unrecognized...解决方法
- angularjs作用域之transclude
- 深度学习(Deep Learning)资料大全(不断更新)
- WinForm中一个窗体调用另一个窗体
- linux Vue+nginx+django 实现前后端分离