/
线程处理类
/
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);
}
}
}
點(diǎn)擊查看更多內(nèi)容
為 TA 點(diǎn)贊
評(píng)論
評(píng)論
共同學(xué)習(xí),寫(xiě)下你的評(píng)論
評(píng)論加載中...
作者其他優(yōu)質(zhì)文章
正在加載中
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說(shuō)多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開(kāi)微信掃一掃,即可進(jìn)行掃碼打賞哦