Java UDP网络编程 - 最简单示例

时间:2022-12-14 22:30:16

Java UDP网络编程 - 最简单示例

Java UDP网络编程 - 最简单示例

    /**
     *UDPServer
     *@author Winty wintys@gmail.com
     *@version 2008-12-15
     */
    import java.io.*;
    import java.net.*;
    class UDPServer{
        public static void main(String[] args)throws IOException{
            DatagramSocket  server = new DatagramSocket(5050);
            byte[] recvBuf = new byte[100];
            DatagramPacket recvPacket 
                = new DatagramPacket(recvBuf , recvBuf.length);
            server.receive(recvPacket);
            String recvStr = new String(recvPacket.getData() , 0 , recvPacket.getLength());
            System.out.println("Hello World!" + recvStr);
            int port = recvPacket.getPort();
            InetAddress addr = recvPacket.getAddress();
            String sendStr = "Hello ! I'm Server";
            byte[] sendBuf;
            sendBuf = sendStr.getBytes();
            DatagramPacket sendPacket 
                = new DatagramPacket(sendBuf , sendBuf.length , addr , port );
            server.send(sendPacket);
            server.close();
        }
    }
/**
 *UDPClient
 *@author Winty wintys@gmail.com
 *@version 2008-12-15
 */
import java.io.*;
import java.net.*;
class UDPClient{
    public static void main(String[] args)throws IOException{
        DatagramSocket client = new DatagramSocket();
        
        String sendStr = "Hello! I'm Client";
        byte[] sendBuf;
        sendBuf = sendStr.getBytes();
        InetAddress addr = InetAddress.getByName("127.0.0.1");
        int port = 5050;
        DatagramPacket sendPacket 
            = new DatagramPacket(sendBuf ,sendBuf.length , addr , port);
        client.send(sendPacket);
        byte[] recvBuf = new byte[100];
        DatagramPacket recvPacket
            = new DatagramPacket(recvBuf , recvBuf.length);
        client.receive(recvPacket);
        String recvStr = new String(recvPacket.getData() , 0 ,recvPacket.getLength());
        System.out.println("收到:" + recvStr);
        client.close();
    }
}