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