使用UDP写服务器端怎么写?

解决方案 »

  1.   

    package udp;import java.io.*;
    import java.net.*;class RecieveThread extends Thread {
        static final int MAX_PACKET_SIZE = 65507;
        DatagramSocket socket;    public RecieveThread(DatagramSocket socket) {
            this.socket = socket;
        }    public void run() {
            byte[] buffer = new byte[MAX_PACKET_SIZE];        DatagramPacket data = new DatagramPacket(buffer, buffer.length);        while (true) {
                try {
                    socket.receive(data);
                } catch (Exception e) {
                    e.printStackTrace();
                }
                byte[] r=new byte[data.getLength()];
                System.arraycopy(data.getData(),0,r,0,r.length);
                String recv = new String(r);
                System.out.println("收到数据" + data.getLength()+"字节:"+recv);
                if (recv.equals("exit")) {
                    socket.close();
                    break;
                }        }
        }
    }
    public class UDPServer {
        static final int PORT = 9090;    public UDPServer() {
        }    public static void main(String[] args) {
            try {
                DatagramSocket dsocket = new DatagramSocket(PORT);
                RecieveThread r = new RecieveThread(dsocket);
                r.start();
                System.out.println("监听服务已经启动!");
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }