一、什么是UDP?
UDP 是User Datagram Protocol的简称, 中文名是用户数据报协议,是OSI(Open System Interconnection,开放式系统互联) 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。
二、如何实现手机向电脑电脑发送消息
1、要实现手机与电脑之间的通信,那么设备上一定要有接收和发送消息的服务器,那么先在电脑上创建一个接收消息的服务器:
public class Receive {
public static void main(String[] args)throws Exception {
//创建接收服务器,端口为8888
DatagramSocket socket = new DatagramSocket(8888);
//新建一个包,用来装接收的消息,括号内为此包的容量,即能装下的字节数
DatagramPacket packet = new DatagramPacket(new byte[1024], 1024);
//准备接收消息,并将消息存入包内,若接收不到消息服务器会一直开放,程序不会向下运行
//若想接受收多条消息可将此代码放入循环中
socket.receive(packet);
System.out.println(new String(packet.getData()).trim());
}
}
2、手机向电脑发送消息:
在安卓主线程内是不能直接创建服务器发送消息的,所以我们可以新建一个线程完成发送消息的任务,在主线程onCreate()方法里写上如下代码:
final String msg = new String("Hello World!");
Thread th = new Thread(){
public void run() {
try {
//创建服务器
DatagramSocket socket = new DatagramSocket(null);
//指定消息发送的目标IP地址和端口号
byte[] data=msg.getBytes();
DatagramPacket packet = new DatagramPacket(data,data.length, InetAddress.getByName("192.168.31.17"), 8888);
socket.send(packet);
} catch (SocketException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
};
th.start();
本文只讲的如何实现,如果想要好看的界面可以自行创作。