Client:

import java.io.*;
import java.net.*;

public class UDPClient {
    public static void main(String[] args) throws IOException
    {
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        DatagramSocket client = new DatagramSocket();

        InetAddress addr = InetAddress.getByName("127.0.0.1");
        int port = 6666;

        String s = null;
        String r = null;
        byte[] buf = new byte[256];

        while ( ( s = in.readLine() ) != null )
        {
            if ( s.equals("bye") )
                break;

            buf = s.getBytes();
            DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, addr, port);
            client.send(sendPacket);

            DatagramPacket recvPacket = new DatagramPacket(buf, buf.length);
            client.receive(recvPacket);
            r = new String(recvPacket.getData(), 0, recvPacket.getLength());
            System.out.println("Server : " + r);
        }

        client.close();

    }
}

ServerThread:

import java.io.*;
import java.net.*;

public class UDPServerThread extends Thread {
    protected DatagramSocket server = null;

    public UDPServerThread() throws IOException
    {
        server = new DatagramSocket(6666);
    }

    public void run()
    {
        while ( true )
        {
            try 
            {
                byte[] buf = new byte[256];

                DatagramPacket recvPacket = new DatagramPacket(buf, buf.length);
                server.receive(recvPacket);

                String r = null;
                String s = null;

                r = new String(recvPacket.getData(), 0, recvPacket.getLength());
                s = r.toUpperCase();
                buf = s.getBytes();

                InetAddress addr = recvPacket.getAddress();
                int port = recvPacket.getPort();
                
                DatagramPacket sendPacket = new DatagramPacket(buf, buf.length, addr, port);
                server.send(sendPacket);
            } 
            catch ( IOException e )
            {
                e.printStackTrace();
                server.close();
            }
        }
        
    }
}

Server:

import java.io.*;
import java.net.*;

public class UDPServer {
    public static void main(String[] args) throws IOException
    {
        new UDPServerThread().start();
    }
}

 

posted on 2013-05-11 01:55  Sinker  阅读(130)  评论(0编辑  收藏  举报