基于udp协议的Socket通信案例

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ITzhongzi/article/details/84622846

发送端代码

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class Main {
    public static void main(String[] args) throws IOException {
        DatagramSocket ds = new DatagramSocket();
        String s = "hello udp,i am coming!";
        byte[] bys = s.getBytes();
        int length = bys.length;
        InetAddress address = InetAddress.getByName("SKY-20180725WBH");
        int port = 7799;
        // DatagramPacket 此类标识数据包
        DatagramPacket dp = new DatagramPacket(bys, length, address, port);
        ds.send(dp);
        ds.close();
    }
}

接收端

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;

public class Receive {
    public static void main(String[] args) throws IOException {
        DatagramSocket ds = new DatagramSocket(7799);
        byte[] bys = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bys, bys.length);
        System.out.println(1);
        ds.receive(dp); //阻塞
        System.out.println(2);

        InetAddress address = dp.getAddress();
        byte[] data = dp.getData();
        int length = dp.getLength();

        System.out.println("send ------>" + address.getHostAddress());
        System.out.println(new String(data, 0, length));


        ds.close();
    }
}

运行效果图

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/ITzhongzi/article/details/84622846