netty实现udp编程比普通的java原生api实现udp编程要稍微复杂一些,但是一旦实现了,也很简单,而且我们不用关心socket这部分,我们只需要关注我们的业务代码即可。
这里给出一个模拟udp server与client的示例,看代码部分,两者很像,但是也有区别,server主要偏向bind并且监听端口,等待客户端连接。而client偏向向server发送数据并接收返回的数据。
无论是server,还是client,他们的主要收发数据逻辑会在各自handler中体现。
udp客户端,不像tcp客户端那样,需要明确指定建立socket连接,即非必须存在connect这一步,只是在发送的packet中指定发送的目的host与port,这也符合udp协议的特点,是一种非可靠的传输协议。
UDPServerApp.java
package com.xxx.udpnetty;
import io.netty.bootstrap.Bootstrap;
import io.netty.channel.Channel;
import io.netty.channel.ChannelInitializer;
import io.netty.channel.ChannelOption;
import io.netty.channel.EventLoopGroup;
import io.netty.channel.nio.NioEventLoopGroup;
import io.netty.channel.socket.nio.NioDatagramChannel;
public class UDPServerApp {
public static void main(String[] args) {
Bootstrap bootstrap = new Boo