我如何接受2个IP和端口上的quickfix接受器会话?

时间:2015-07-21 14:02:06

标签: quickfix quickfixj

这适用于内部和外部DNS设置。所以我的配置文件说:

connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=X.X.X.X
SocketAcceptPort=1901

然后

connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=url.mapping.to.X.X.X.X
SocketAcceptPort=1902

并且接受器不会运行错误:

quickfix.RuntimeError: java.net.BindException: Cannot assign requested address: bind

2 个答案:

答案 0 :(得分:1)

  

SenderCompID =提供商    TargetCompID =客户端1

两者都是一样的。如果我没记错,Quicfix通过BeginString,SenderCompID,TargetCompID标识一个唯一的会话。因此,如果这两个会话相同,您将收到错误。所以其中一个必须与另一个不同。

二级查询是你为什么要这样做?这是故障转移吗?

答案 1 :(得分:1)

答案是为所有客户端使用内部套接字地址,但随后让LAN客户端使用内部DNS" machine1"和外部客户端使用外部DNS" remote.machine1.com"

所以配置看起来像这样:

connectionType=acceptor
SenderCompID=provider
TargetCompID=client1
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901

connectionType=acceptor
SenderCompID=provider
TargetCompID=client2
SocketAcceptAddress=192.168.20.25
SocketAcceptPort=1901

每个客户都在同一个端口......