欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

Android应用使用UDP通信简单实现及注意事项

程序员文章站 2022-07-03 12:42:59
UDP:无连接的传输协议,又称为用户数据报协议(UDP,User Datagram Protocol)UDP通信无服务端和客户端之分,只有发送端和接收端。一、发送端的实现:1、建立DatagramSocket与DatagramPacket;2、设置DatagramPacket的端口IP;3、通过DatagramSocket发送;int iport=5555;//本机端口号int port=8888;//目标接收端口号byte []sendByte={0x01,0x02};//发...

UDP:无连接的传输协议,又称为用户数据报协议(UDP,User Datagram Protocol)

UDP通信无服务端和客户端之分,只有发送端和接收端。

一、发送端的实现:

1、建立DatagramSocket与DatagramPacket;

2、设置DatagramPacket的端口IP;

3、通过DatagramSocket发送;

int iport=5555;//本机端口号
int port=8888;//目标接收端口号
byte []sendByte={0x01,0x02};//发送的字节数组
InetAddress ip=InetAddress.getByName("192.168.2.0.33");//目标接收端的ip地址

DatagramSocket socket=new DatagramSocket(iport);

DatagramPacket packet=new DatagramPacket (sendByte,sendByte.length,ip,port);

socket.send(packet);

注意:1)目标接收端口号不能和本机端口号一样,否则将提示被占用;

2)发送数据包(即socket.send(packet))这一步需要放进子线程里,否则线程会冲突造成崩溃。

3)AndroidManifest.xm文件中要记得加权限<uses-permission android:name="android.permission.INTERNET" />

二、接收端的实现

1、创建DatagramSocket,这时的端口号需与发送端的packet中设置的端口号一致;

2、创建DatagramPacket,指定存储数据的字节数组和该字节数组的长度;

3、接收,这个方法会阻塞,直到接收到packet;

DatagramSocket socket=new DatagramSocket(8888);

byte []receiveByte=new byte[2048];

DatagramPacket packet=new DatagramPacket(receiveByte,receiveByte.length);

socket.receive(packet);//接收

 

本文地址:https://blog.csdn.net/weixin_40191474/article/details/107511809

相关标签: Android