继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

UDP多线程服务器代码,仿TCP多线程代码编写

car
关注TA
已关注
手记 83
粉丝 56
获赞 363
package com.imooc;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPServerThread implements Runnable {

    DatagramSocket socket = null;
    byte[] data = null;
    DatagramPacket packet = null;

    public static void main(String[] args) throws IOException {
        UDPServerThread serverThread = null;
        Thread thread = null;
        int count = 0;
        DatagramSocket socket = new DatagramSocket(8800);
        byte[] data = null;
        DatagramPacket packet = null;
        while (true) {
            data = new byte[1024];
            packet = new DatagramPacket(data, data.length);
            socket.receive(packet);
            serverThread = new UDPServerThread(socket, data, packet);
            thread = new Thread(serverThread);
            thread.start();
            System.out.println("客户端数量为" + (++count));

        }
    }

    public UDPServerThread(DatagramSocket socket, byte[] data, DatagramPacket packet) {
        this.socket = socket;
        this.data = data;
        this.packet = packet;
    }

    @Override
    public void run() {

        try {
            runMain();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

    public void runMain() throws IOException {
        String info = new String(data, 0, packet.getLength());
        System.out.println("客户端说" + info);
        InetAddress address = packet.getAddress();
        System.out.println("客户端IP:" + address.getHostAddress());
        int port = packet.getPort();
        data = "欢迎您".getBytes();
        packet = new DatagramPacket(data, data.length, address, port);
        socket.send(packet);

    }

}
打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP