如何在Spring Boot中创建Tcp Connection以接受连接?

我已经经历了这一点,并了解到我需要创建一个TcpReceivingChannelAdapter接受连接。但我不知道该如何进行。

有人可以指导我吗?

回答:

有关使用XML配置的一些指针,请参见tcp-client-server示例。

用于Java配置;这是一个简单的Spring Boot应用程序…

package com.example;

import java.net.Socket;

import javax.net.SocketFactory;

import org.springframework.boot.SpringApplication;

import org.springframework.boot.autoconfigure.SpringBootApplication;

import org.springframework.context.ConfigurableApplicationContext;

import org.springframework.context.annotation.Bean;

import org.springframework.integration.annotation.ServiceActivator;

import org.springframework.integration.annotation.Transformer;

import org.springframework.integration.channel.DirectChannel;

import org.springframework.integration.ip.tcp.TcpReceivingChannelAdapter;

import org.springframework.integration.ip.tcp.connection.AbstractServerConnectionFactory;

import org.springframework.integration.ip.tcp.connection.TcpNetServerConnectionFactory;

import org.springframework.integration.transformer.ObjectToStringTransformer;

import org.springframework.messaging.MessageChannel;

@SpringBootApplication

public class So39290834Application {

public static void main(String[] args) throws Exception {

ConfigurableApplicationContext context = SpringApplication.run(So39290834Application.class, args);

Socket socket = SocketFactory.getDefault().createSocket("localhost", 9999);

socket.getOutputStream().write("foo\r\n".getBytes());

socket.close();

Thread.sleep(1000);

context.close();

}

@Bean

public TcpNetServerConnectionFactory cf() {

return new TcpNetServerConnectionFactory(9999);

}

@Bean

public TcpReceivingChannelAdapter inbound(AbstractServerConnectionFactory cf) {

TcpReceivingChannelAdapter adapter = new TcpReceivingChannelAdapter();

adapter.setConnectionFactory(cf);

adapter.setOutputChannel(tcpIn());

return adapter;

}

@Bean

public MessageChannel tcpIn() {

return new DirectChannel();

}

@Transformer(inputChannel = "tcpIn", outputChannel = "serviceChannel")

@Bean

public ObjectToStringTransformer transformer() {

return new ObjectToStringTransformer();

}

@ServiceActivator(inputChannel = "serviceChannel")

public void service(String in) {

System.out.println(in);

}

}

以上是 如何在Spring Boot中创建Tcp Connection以接受连接? 的全部内容, 来源链接: utcz.com/qa/436114.html

回到顶部