java学习笔记 UDP协议

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java学习笔记 UDP协议相关的知识,希望对你有一定的参考价值。

TCP的所有操作都建立在可靠的链接

UDP(数据报协议)发送的消息对方并不一定会接收到,所有的信息都是以数据报的形式发出

使用DatagramSocket类和DatagramPacket类完成操作

服务端UDP:

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

//定义服务端接收信息
public class TestUdpServer {
    public static void main(String[] args) {
        try {
            DatagramSocket ds = new DatagramSocket(9000);//设定监听端口号
            byte bytes[] = new byte[1024];//1KB
            DatagramPacket dp = new DatagramPacket(bytes,bytes.length);//DatagramPacket(byte[] buf, int length)构造方法
            //设定循环接收
            String str = null;
            while (true) {
                ds.receive(dp);//阻塞式方法,一直到接收到数据才解锁
                System.out.println("接收数据 : ");
                str = new String(bytes,0,dp.getLength());    //注意receive之后,dp填充的是bytes数组
                System.out.println(str + ": "+ dp.getAddress().getHostName() + "-----" + dp.getSocketAddress());
            }
        }catch(SocketException e1) {
            e1.printStackTrace();    
        }catch(IOException e2) {
            e2.printStackTrace();    
        }
    }    
}

客户端UDP:

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

//定义客户端发送信息
public class TestUdpClient {
    public static void main(String[] args) {
        try {
            DatagramSocket ds = new DatagramSocket(8888);//设定监听端口
            String str = "Hello Word!";
            byte bytes[] = str.getBytes();
            //DatagramPacket(byte[] buf, int offset, int length, SocketAddress address)
            //InetSocketAddress(InetAddress addr, int port)
            DatagramPacket dp = new DatagramPacket(bytes,0,bytes.length,new InetSocketAddress("192.168.0.121",9000));
            ds.send(dp);
            ds.close();
        }catch(SocketException e) {
            e.printStackTrace();    
        }catch(IOException e2) {
            e2.printStackTrace();    
        }
    }    
}

结果:

技术分享

以上是关于java学习笔记 UDP协议的主要内容,如果未能解决你的问题,请参考以下文章

java网络编程TCP/UDP笔记

JAVA Socket 编程学习笔记

Java NIO学习笔记八 DatagramChannel

TCP/IP详解学习笔记-UDP协议

六LWIP学习笔记之用户数据报协议(UDP)

(学习笔记)TCP与UDP的区别