1

在尝试读取发送到已定义端口上的套接字的数据时,我在开源应用程序(quickfix 1.13.3)中遇到问题。

当服务器发送数据并在它之后关闭套接字时会出现问题。然后我的代码无法读取最后发送的数据,并抛出 10054 错误。请注意,如果服务器不关闭套接字,我可以正常接收。

这是我用来从服务器接收数据的代码,等待您的帮助;

int size = recv( m_socket, m_buffer, sizeof(m_buffer), 0 );

请注意,如果我使用 TCPClient 接收数据,它工作得很好,但这将导致创建另一个 quickfix 应用程序,这意味着几个月的辛勤工作会丢失,而要创建一个类似于 quickfix 的应用程序需要更多的时间。

4

1 回答 1

0

如果服务器导致发送 RST,则语义意图是丢失任何传输中的数据。服务器通常没有业务这样做。问题就在于此。除了可能使用更大的套接字接收缓冲区来改变窗口并更快地读取之外,您在客户端无能为力。

于 2012-09-18T21:22:26.203 回答