A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bowen-xiao 中级黑马   /  2015-1-26 22:23  /  714 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马