2017-11-10 1 views
1

私はバグ統合を使用して、UDP whit Real Time OSを介して通信します。メッセージからIPアドレスを取得したいデータグラムのバネ積分のIPアドレスを取得

@Bean 
    public MessageChannel udpIn() 
    { 
    return new DirectChannel(); 
    } 

    @Bean 
    public UnicastReceivingChannelAdapter udpInboundAdapter() 
    { 
    UnicastReceivingChannelAdapter adapter = new UnicastReceivingChannelAdapter(8888); 
    adapter.setOutputChannel(udpIn()); 
    adapter.setListening(true); 
    adapter.setPoolSize(7); 
    adapter.start(); 
    return adapter; 
    } 

@ServiceActivator(inputChannel = "udpIn") 
    public void msgConsumer(Message<byte[]> message) 
    { 
    System.out.println("Message Received! Payload:" + Arrays.toString(message.getPayload())); 
    // HERE I want to get IP address 
    } 

答えて

0

UnicastReceivingChannelAdapterが生成Messageのように:あなたのmsgConsumer()サービスメソッドでこれらのヘッダへのルックスを取る

message = getMessageBuilderFactory().withPayload(payload) 
        .setHeader(IpHeaders.HOSTNAME, hostName) 
        .setHeader(IpHeaders.IP_ADDRESS, hostAddress) 
        .setHeader(IpHeaders.PORT, port) 
        .setHeader(IpHeaders.PACKET_ADDRESS, packet.getSocketAddress()) 
        .build(); 

関連する問題