Java网络通信编程-UDP

Posted 完美世界

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java网络通信编程-UDP相关的知识,希望对你有一定的参考价值。

1.对于TCP和UDP主要是两种不同的协议,前者是“面向连接”,“安全”,后者是“面向无连接”,“速度快”,“不安全”。

2.端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口。

3.使用UDP主要涉及的对象有DatagramSocket,DatagramPacket,InetAddress。下面是UDP案例,代码如下:

client端:

package com.net;

import java.io.IOException;
import java.net.*;

/** UDP通信-client
 * Created by lichangyun on 2020/7/17.
 */
public class UdpClient {
    public static void main(String[] args) throws SocketException, UnknownHostException {

//        创建DatagramSocket
        DatagramSocket ds=new DatagramSocket();

//        创建DatagramPacket,打包
        String msg="我爱编程!";
        byte[] bytes = msg.getBytes();
        InetAddress address = InetAddress.getByName("127.0.0.1");
        int port=1000;

        DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);

        try {
//        建立联系
            ds.send(dp);
        } catch (IOException e) {
            e.printStackTrace();
        }finally {
            ds.close();
        }
    }
}

 

server端:

package com.net;

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

/**UDP-server
 * Created by lichangyun on 2020/7/20.
 */
public class UdpServer {
    public static void main(String[] args) throws IOException {

//        创建服务端对象
        DatagramSocket  ds= new DatagramSocket(1000);

//        创建包
        byte[] bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);

//        接受客户端的数据
        ds.receive(dp);

//        打印到控制台
        System.out.println("接受到的数据:   "+new String(bytes,0,bytes.length));
//        释放资源
        ds.close();

    }
}

 

以上是关于Java网络通信编程-UDP的主要内容,如果未能解决你的问题,请参考以下文章

Python 之 Socket编程(TCP/UDP)

java 25 - 4 网络编程之 UDP协议传输的代码优化

JAVA网络编程知识学习

Java-Web学习-Java基础-网络编程(TCP和UDP)附TCP实现通信

[Java网络编程]UDP通信程序练习

java 网络编程----UDP基础级的示例