如何在Spring Boot中实现UDP服务器从客户端读取输入

时间:2017-07-05 14:59:55

标签: java spring spring-mvc udp

我已经实现了一个带有spring boot(版本1.5.3)框架的Web应用程序。现在我需要一个从客户端接收传入消息的udp服务器。如何将此功能添加到基于Spring Boot的项目中?

我关注How to implement UDP in Spring framework链接以供参考,但无法获得w.r.t spring boot

任何人都可以帮助我理解这一点

由于 Maruthy

1 个答案:

答案 0 :(得分:1)

依赖于Spring Boot集成和spring-ip。

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-integration</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.integration</groupId>
        <artifactId>spring-integration-ip</artifactId>
        <version>5.1.0.RELEASE</version>
    </dependency>

然后使用“ UnicastReceivingChannelAdapter”创建简单的“ IntegrationFlow”并将其关联,创建一个用于接收UDP消息的bean

@Bean
  public IntegrationFlow processUniCastUdpMessage() {
    return IntegrationFlows
      .from(new UnicastReceivingChannelAdapter(11111))
      .handle("UDPServer", "handleMessage")
      .get();
  }

@Service
public class UDPServer
{
  public void handleMessage(Message message)
  {
    String data = new String((byte[]) message.getPayload());
    System.out.print(data);
  }
}

还可以使用使用“ UnicastSendingMessageHandler”的简单客户端将消息发送到UDP服务器。

UnicastSendingMessageHandler handler =
      new UnicastSendingMessageHandler("localhost", 11111);

String payload = "Hello world";
handler.handleMessage(MessageBuilder.withPayload(payload).build());