UDP
面向无连接的传输协议,所以这里客户端和服务器没有太大的区别;
服务器和客户端都是在发送数据包,然后解析数据包获取里面的信息。
所以客户端和服务器端原理基本一致,服务器只需要先开启一个监听端口,然后就可以进行通讯了。
服务器端
一、需要先创建一个监听的端口等待连接
DatagramSocket ds = new DatagramSocket(PORT);
二、开始创建接收的数据包,准备接收
byte[] b = new byte[1024];
DatagramPacket receiveDp = new DatagramPacket(b, b.length);
// 接收
ds.receive(receiveDp);
InetAddress clientIP = receiveDp.getAddress();//获取请求的主机信息
int clientPort = receiveDp.getPort();//获取连接主机的端口号
三、准备返回数据,并对其打包,发送
// 发送反馈
String response = "OK";
byte[] bData = response.getBytes();
sendDp = new DatagramPacket(bData, bData.length, clientIP,clientPort);
// 发送
ds.send(sendDp);
客户端
一、先创建要连接的对象,DatagramSocket ds = new DatagramSocket(); // 连接对象
二、把数据进行打包,DatagramPacket sendDp = DatagramPacket(byte[] buf, int length, InetAddress address, int port); // 发送数据包对象
三、使用连接进行发送
接收数据包,先创建一个新空数据包,使用连接对象进行接收,获取包里所需要的信息
// 初始化接收数据
byte[] b = new byte[1024];
DatagramPacket receiveDp = new DatagramPacket(b, b.length);
// 接收
DatagramSocket.receive(receiveDp); |
|