Quickfix Socket Error:通过peer c ++重置连接

时间:2014-12-21 18:36:11

标签: c++ sockets openssl quickfix

我使用quickfix下载中的tradeclient c ++演示代码收到“Socket Error:Connection reset by peer”消息。

另一位用户评论说它与网络问题有关。如果有人有解决方案,将不胜感激。

QuickFix C++ Socket Error Connection Reset By Peer?

<20141221-17:32:11.049, FIX.4.4:myusername->hostusername, event>
      (Created session)
    <20141221-17:32:11.056, FIX.4.4:myusername-> hostusername, event>
      (Connecting to fix.hostusername.com on port 5001)
    <20141221-17:32:11.221, FIX.4.4:myusername-> hostusername, outgoing>
      (8=FIX.4.49=10735=A34=149=myusername =20141221-17:32:11.21856= hostusername    98=0108=30141=Y10=000)
    <20141221-17:32:11.221, FIX.4.4:myusername-> hostusername, event>
      (Initiated logon request)
    <20141221-17:32:11.253, FIX.4.4:myusername-> hostusername, event>
      (Socket Error: Connection reset by peer.)
    <20141221-17:32:11.253, FIX.4.4:myusername-> hostusername, event>
      (Disconnecting)

我想我找到了原因。我正在尝试连接的主机是使用支持SSL的quickfix java。 quickfix c ++客户端似乎不支持会话设置中的SSL启用标记。终于不得不求助于wireshark来确定这一点。我搜索了整个网络,很多人都报告了这个类似的错误。我希望这篇文章能够保存他们未来的任何人无休止的调试来解决这个“套接字错误:连接重置同伴”错误。

4 个答案:

答案 0 :(得分:0)

我知道"Socket Error: Connection reset by peer"的两个原因是: -

1)您的SenderCompId/TargetCompId与其他方的ResetOnLogon不匹配。在这种情况下,请确保使用正确的。

2)另一个是服务器期望的序列号与您发送的序列号不同。在这种情况下,只需尝试使用{{1}}字段(在您的注册表文件中)为否,并检查是否可以解决问题。

此错误可能有很多原因。但是,我怀疑网络是否对此错误负责,因为连接请求已正确发送到服务器。您可以在互联网上搜索更广泛的答案。

答案 1 :(得分:0)

很可能是防火墙,拥有正确的IP和端口,以及获得许可的权限吗?

答案 2 :(得分:0)

我想我找到了原因。我试图连接的主机是使用支持SSL的quickfix java。 quickfix c ++客户端似乎不支持会话设置中的SSL启用标记。终于不得不求助于wireshark来确定这一点。我搜索了整个网络,很多人都报告了这个类似的错误。我希望这篇文章能够为将来的任何人保存它们,无休止的调试来解决这个问题&#34;套接字错误:连接由同行重置&#34;错误。 - 盖革zaehler

答案 3 :(得分:0)

我们在未正确导入安全证书时收到此错误消息。