gpt4 book ai didi

c++ - 客户端 connect() 失败,服务器 accept() 成功。为什么?

转载 作者:行者123 更新时间:2023-11-28 08:18:51 33 4
gpt4 key购买 nike

我有一个客户端-服务器系统,客户端应该简单地连接到服务器。以下是我在客户端上单击“连接”时发生的情况:

BOOL connectionStatus = m_sockClient.Connect(sIpAddr, 27386);

此调用失败(connectionStatus 为 0)并且 GetLastError 返回 10035(重试)

另一方面,服务器接受连接!如何?像这样:服务器套接字的 OnReceive() 函数第一行的断点被击中并且

BOOL receivedConnection = Accept( m_sockRecv );

返回真值。

  1. 如果 connect() 尝试失败,为什么这个 Accept() 成功了?这是我不明白的。
  2. 如何使 CAsyncSocket 阻塞?

提前致谢。

最佳答案

这是 expected behavior .错误是 WSAEWOULDBLOCK,这意味着您需要等待 OnConnect 事件才能知道连接何时完全建立。我不确定是否有办法让它阻塞,异步包装器的全部意义在于使一切都成为非阻塞的。如果你想要阻塞语义,你应该使用 CSocket .

关于c++ - 客户端 connect() 失败,服务器 accept() 成功。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6691324/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com