1

这是用于内部和外部 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
4

2 回答 2

1

SenderCompID=提供者,TargetCompID=client1

两者都是一样的。如果我没记错的话,Quicfix 通过 BeginString、SenderCompID、TargetCompID 识别一个唯一的会话。因此,如果 2 个会话的这些相同,您将收到错误消息。因此,其中任何一个都必须与另一个不同。

次要查询是您为什么要这样做?这是为了故障转移吗?

于 2015-07-22T08:27:15.433 回答
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

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

于 2015-07-22T14:12:50.780 回答