/
线程处理类
/
public class UDPServerThread extends Thread {
DatagramSocket socket = null;
DatagramPacket packet = null;
public UDPServerThread(DatagramSocket socket, DatagramPacket packet) {
this.socket = socket;
this.packet = packet;
}
public void run() {
try {
byte[] data = packet.getData();
// 4、读取数据
String info = new String(data, 0, packet.getLength());
System.out.println("我是服务端,客户端说:" + info);
/*
* 向客户端响应数据
*/
// 1、定义客户端的地址、端口号、数据
InetAddress address = packet.getAddress();
int port = packet.getPort();
byte[] data2 = "欢迎您!".getBytes();
// 2、创建数据报,包含响应的数据信息
DatagramPacket packet2 = new DatagramPacket(data2, data2.length, address, port);
socket.send(packet2);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/
服务端主函数
/
public class UDPServer {
public static void main(String[] args) throws IOException {
/*
* 接收客户端信息
*/
// 1、创建服务器端DatagramSocket,指定端口
DatagramSocket socket = new DatagramSocket(8800);
System.out.println("****服务器端已启动,等待客户端发送数据****");
int count = 0;
while (true) {
// 2、创建数据报,用于接收客户端发送的数据报
byte[] data = new byte[1024];
DatagramPacket packet = new DatagramPacket(data, data.length);
// 3、接收客户端发送的数据(此方法在接受到数据报之前会一直阻塞)
socket.receive(packet);
UDPServerThread serverThread = new UDPServerThread(socket, packet);
serverThread.start();
count++;
System.out.println("目前客户端连接数:"+count);
}
}
}
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦