我想通过 udp 客户端一次发送大量 udp 消息,但演示只发送一条消息。我怎样才能实现呢?
使用演示代码,我只能发送有限数量的消息。我想使用 while(true) 发送消息,我该如何实现?
public static void main(String[] args) { Connection connection = UdpClient.create() .host("localhost") .port(8080) .handle((udpInbound, udpOutbound) -> { return udpOutbound.sendString(Mono.just ("end")).sendString(Mono.just("end1")).sendString(Mono.just("end2")); }) .connectNow(Duration.ofSeconds(30)); connection.onDispose() .block(); }
当您要发送多条消息时,可以使用Flux
代替Mono
。sendString(Flux)
与多次sendString(Mono)
调用的方法相比,一次调用更好。下面的示例Flux.interval
使您拥有每 100 毫秒发出一次消息的无限流。此外,当您有无限流时,您必须切换到刷新每个策略
Connection connection =
UdpClient.create()
.host("localhost")
.port(8080)
.handle((udpInbound, udpOutbound) ->
udpOutbound.options(NettyPipeline.SendOptions::flushOnEach)
.sendString(Flux.interval(Duration.ofMillis(100))
.map(l -> l + "")))
.connectNow(Duration.ofSeconds(30));
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句