Reputation: 111
I would need something similar like in Can not send response for UDP message but for TCP. So the client send message and TCP server can send back response like OK. For TCP socket-expression="@inbound.socket" and destination-expression="headers['ip_packetAddress']" cannot be used.
This is how my config look like now:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:int="http://www.springframework.org/schema/integration"
xmlns:int-ip="http://www.springframework.org/schema/integration/ip"
xmlns:int-event="http://www.springframework.org/schema/integration/ip"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/integration http://www.springframework.org/schema/integration/spring-integration.xsd
http://www.springframework.org/schema/integration/ip http://www.springframework.org/schema/integration/ip/spring-integration-ip.xsd">
<int:channel id="tcpSend"/>
<int-ip:tcp-connection-factory id="client" type="client"/>
<int-ip:tcp-connection-factory id="server" type="server" host="localhost" port="1234"/>
<int-ip:tcp-outbound-channel-adapter id="tcpOutbound" channel="tcpSend"
connection-factory="client"/>
<int-ip:tcp-inbound-channel-adapter id="tcpInbound" channel="tcpReceive"
connection-factory="server"/>
<int:service-activator id="tcpHandler" input-channel="tcpReceive" output-channel="tcpSend"
ref="listener"/>
</beans>
Upvotes: 3
Views: 1968
Reputation: 121177
In case of TCP it is much easier because you can use Inbound Gateway.
The sample on the matter is in the official repository: https://github.com/spring-projects/spring-integration-samples/tree/master/basic/tcp-client-server
Upvotes: 3