在java中使用UDP传输数据比TCP更加简单。和socket的TCP不同,UDP不是面向连接的协议。使用UDP时,只要知道服务器IP和端口就可以直接向对方发送数据。在java中使用DatagramChannel来处理UDP的数据传输。
public class UDPClient {
public static void main(String[] args) {
new UDPClient().send();
}
@SneakyThrows
public void send() {
DatagramChannel channel = DatagramChannel.open();
//设为阻塞模式
channel.configureBlocking(false);
ByteBuffer buffer = ByteBuffer.allocate(1024);
Scanner scanner = new Scanner(System.in);
log.info("UDP客户端启动成功!");
log.info("请输入发送内容:");
while (scanner.hasNext()) {
String next = scanner.next();
Date date = new Date();
buffer.put((date + ">>"+next).getBytes());
buffer.flip();
channel.send(buffer, new InetSocketAddress("127.0.0.1", 8888));
buffer.clear();
}
channel.close();
}
}