一.首先要先了解一下UDP套接字的网络通信
TCP和UDP都是传输层的两个协议,最近在学习安卓,想要实现手机和电脑的通信,TCP虽然安全性能好,但是实现起来比较麻烦,在自己想要初步实现一个简易的通信,可以从UDP先实现,两者去区别会在后面完善,这里就先以UDP为主。
我们先来看一下UDP的包头
从上图可以看到,UDP包头结构简单,是需要知道源端口号和目标端口号,看起来就是很天真,总结起来有以下几个优特点:
1.沟通简单,不需要复杂的数据结构
2.UDP很容易轻信他人,不需要建立连接再发送消息,它可以监听一个端口号,可以随意给任何人发消息,任何人也可以给它发消息
3.有点目中无人,不管消息包是否丢失,就是会一直发消息,不会进行消息堵塞的控制
二.下面我们来具体实现一下手机和PC的通信
实现的方法分为两方面:发送和接受方法:这里可以和实际生活联系起来,我们收发快递,需要快递员在乙方取快递,填写好地址打包,发送,需要另一个快递员按照地址给甲方送快递,那就按照这个思路理解下面的方法喽!
发送:方法思路如下
1.创建一个套接字DatagramSocket对象,指定要发送消息的端口号(是发送和接收的桥梁,两者通过一致的一对端口号进行通信);
2.需要一个byte数组将要发送的字符串转换为字节存储在这里;
3.将上面的字节数组打包,需要一个DatagramPacket
4.通过套接字对象将数据包发送
接收:方法思路如下——和上面对应
1.同样创建一个套接字DatagramSocket对象,指定和发送端同样的端口号;
2.给定一个足够大小的byte字节数组,用来存储接收到的数据
3.创建一个byte字节数组大小的包,用来接收
4.通过套接字对象接收数据包
5.将接受到的数据包转换为字符串