我是靠谱客的博主 自觉红牛,最近开发中收集的这篇文章主要介绍简单的一对一Udp通信,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

1首先是Server端代码

package udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UdpServer {

    public static void main(String[] args)throws Exception {

        //1创建服务端DataGrameSocket
        DatagramSocket datagramSocket=new DatagramSocket(8888);

        //2创建数据包,用于接受 客户端的发送的数据
        byte[]data=new byte[1024];
        DatagramPacket datagramPacket=new DatagramPacket(data,data.length);

        //3.接受客户端发送的数据
        //此方法在接收到客户端的数据包之前会阻塞
        datagramSocket.receive(datagramPacket);

        //4读取数据
        String dataString=new String(data,0,datagramPacket.getLength());

        System.out.println("服务器接收到客户端的内容:"+dataString);


        //服务端相应客户端
        //1.定义客户端的地址
        InetAddress client=datagramPacket.getAddress();
        int clientPort=datagramPacket.getPort();

        byte[] dataToClient="这是服务端发给客户端的信息".getBytes();
        //2创建数据包
        DatagramPacket datagramPacket1=new DatagramPacket(dataToClient,dataToClient.length,client,clientPort);
        //3发送
        datagramSocket.send(datagramPacket1);


        //4.关闭资源信息
        datagramSocket.close();


    }

}

然后是Client端的代码

package udp;

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UdpClient {

    public static void main(String[] args) throws Exception {
        //1.定义服务器的地址,端口号,数据
        InetAddress inetAddress = InetAddress.getLocalHost();
        //2.创建数据包, 包含发送的数据信息

        byte[] data = "这是从客户端发送的信息".getBytes();

        DatagramPacket datagramPacket = new DatagramPacket(data, data.length, inetAddress, 8888);

        //3创建DatagrameSocket对象发送
        DatagramSocket datagramSocket=new DatagramSocket();


        //4 向服务器发送数据
        datagramSocket.send(datagramPacket);



        //客户端响应服务端发来的请求

        //1创建数据包,用于接受响应信息
        byte[]dataFromServer=new byte[1024];
        DatagramPacket dataFromServerPacket=new DatagramPacket(dataFromServer, dataFromServer.length, inetAddress, 8888);

        //2接受服务器的相应的数据
        datagramSocket.receive(dataFromServerPacket);

        //3读取数据
        String dataString=new String(dataFromServer,0,dataFromServerPacket.getLength());
        System.out.println("客户端接收到服务端数据:"+dataString);

    }
}




3.首先启动服务端

在这里插入图片描述

4.启动客户端

在这里插入图片描述

看下服务端的输出

在这里插入图片描述

ok,至此,通信成功

最后

以上就是自觉红牛为你收集整理的简单的一对一Udp通信的全部内容,希望文章能够帮你解决简单的一对一Udp通信所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部