这适用于内部和外部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
答案 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
每个客户都在同一个端口......