UDP编程

服务端

服务端是作为信息的接收方

package com.demo02.demo01.udp.demo01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
/**
 * 服务端
 * 1、创建服务端 +端口
 * 2、准备接受容器
 * 3、封装成 包
 * 4、接受数据
 * 5、分析数据  
 * 6、释放
 */
public class MyServer {
    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
           //1、创建服务端 +端口
           DatagramSocket server = new DatagramSocket(8888);//{ip:port}
           //2、准备接受容器
           byte[] container = new byte[1024];
           //3、封装成 包 DatagramPacket(byte[] buf, int length)             
           DatagramPacket packet =new DatagramPacket(container,container.length) ;
           System.out.println(1);
           //4、接受数据----阻塞状态
           server.receive(packet);
           System.out.println(2);
           //5、接收到数据之后,执行分析数据
           byte[] data =packet.getData();
           int len =packet.getLength();
           System.out.println(new String(data,0,len));
           //6、释放
           server.close();
           
    }
}

客户端

客户端作为信息的提交方

package com.demo02.demo01.udp.demo01;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
/**
 * 客户端
 * 1、创建客户端 +端口
 * 2、准备数据
 * 3、打包(发送的地点 及端口)
 * 4、发送
 * 5、释放
 */
public class MyClient {
    /**
     * @param args
     * @throws IOException 
     */
    public static void main(String[] args) throws IOException {
           //1、创建客户端 +端口
           DatagramSocket client = new DatagramSocket(6666);
           //2、准备数据
           String msg ="udp编程";
           byte[] data =msg.getBytes();
           //3、打包(发送的地点 及端口)
           //DatagramPacket(byte[] buf, int length, InetAddress address, int port)
           DatagramPacket packet = new DatagramPacket(//
                   //new InetSocketAddress("localhost",8888) 找到传输对象的套接字(ip:port)
                   data,data.length,new InetSocketAddress("localhost",8888));
           //4、发送
           client.send(packet);
           //5、释放
           client.close();
    }
}

 

上一篇:1异常(throw、throws关键字、try...catch、Throwable类)


下一篇:java文件复制四种方法性能比较