java udp多线程服务器_UDP服务端多线程-----

/线程处理类/

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

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值