Java Udp网络编程

2020-02-01  本文已影响0人  粑粑八成

1、指定socket端口
2、在发送的包中指定发送到的地址和端口
3、发送的包中的端口必须和接受端的socket端口相同

package UdpClient;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;

/**
 * 发送端
 * 1、使用DatagramSocket 指定端口,创建发送端
 * 2、准备数据,一定转成字节数组
 * 3、封装成DatagramSocket包裹,需要指定目的地
 * 4、发送包裹send(DatagramSocket p)
 * 5、释放资源
 */
public class UdpClient {

  public static void main(String[] args) throws Exception {
    System.out.println("发送方启动中。。。。。。");

    // 1、使用DatagramSocket 指定端口,创建发送端
    DatagramSocket client = new DatagramSocket(8888);
    // 2、准备数据,一定转成字节数组
    String data = "好好学习";
    byte[] datas = data.getBytes();
    // 3、封装成DatagramSocket包裹,需要指定目的地
    DatagramPacket packet = new DatagramPacket(datas, datas.length,
        new InetSocketAddress("localhost",
            9999));
    // 4、发送接收包裹receive(DatagramSocket p)
    client.send(packet);
    // 6、释放资源
    client.close();
  }
}

package UdpClient;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetSocketAddress;
import java.net.SocketException;

/**
 * 接受端
 * 1、使用DatagramSocket 指定端口,创建接收端
 * 3、准备容器,封装成DatagramSocket包裹
 * 4、阻塞式接收包裹receive(DatagramSocket p)
 * 5、分析数据
 * byte[] getData()
 * getLength()
 * 6、释放资源
 */
public class UdpServer {

  public static void main(String[] args) throws Exception {
    System.out.println("接收方启动中。。。");
    // 1、使用DatagramSocket 指定端口,创建接收端
    DatagramSocket server = new DatagramSocket(9999);
    // 2、准备容器,封装成DatagramSocket包裹
    byte[] container = new byte[1024 * 60]; // 60k
    DatagramPacket packet = new DatagramPacket(container, container.length);
    // 4、阻塞式接收包裹receive(DatagramSocket p)
    server.receive(packet);
    // 5、分析数据
    //    byte[] getData()
    //    getLength()
    byte[] datas = packet.getData();
    int len = packet.getLength();
    System.out.println(new String(datas));
    // 6、释放资源
    server.close();
  }
}
上一篇下一篇

猜你喜欢

热点阅读