如何将客户端连接到多个服务器套接字?

时间:2015-04-08 08:50:29

标签: java spring sockets spring-integration

我正在使用spring-integration使用以下组件将客户端连接到服务器socket

DirectChannel
TcpConnectionFactoryFactoryBean
TcpOutboundGateway
@MessagingGateway

问题:TcpConnectionFactoryFactoryBean绑定到特定的套接字端口。我想将客户端连接到多个服务器套接字。

我怎么能实现这个目标?这有可能吗?

2 个答案:

答案 0 :(得分:3)

TCP连接绑定到以下参数:

  • 来源地址
  • 源端口
  • 远程地址
  • 远程端口

我认为它无意提供通过一个套接字创建一对多连接的可能性,因为这将违反TCP定义。

Wiki-Article for TCP

因此,解决方案是创建多个套接字,每个套接字与一个不同的服务器保持一个连接。

答案 1 :(得分:1)

正确。每个服务器/端口都需要一个单独的连接工厂。

Spring Integration中目前没有任何机制可以为每条消息动态选择TCP主机/端口。

这种机制可能需要缓存连接以避免必须为每个请求打开一个新套接字。随意打开一个新功能JIRA问题,我们将考虑将来发布。