Winsock-正在将客户端重新连接到服务器-10061
Winsock - reconnecting client to server - 10061
我想我会为此开始一个新问题。我设置了一个TCP服务器/客户端,它们以我通常想要的方式进行通信。1台服务器和1台客户端。
我现在想做的是添加一些功能,允许客户端在连接丢失后自动重新连接到服务器。我在网上找不到关于如何做到这一点的完整信息。这是(希望)相关的问题代码:
服务器:
case FD_ACCEPT: //Connection request
{
SOCKET TempSock = accept(s, (struct sockaddr*)&fromm, &fromlenn);
s = TempSock; //Switch old socket to the new one
m_sNetworkStatus.Format("[%s] accepted.", inet_ntoa(fromm.sin_addr));
m_hNetworkStatus.SetWindowTextA(m_sNetworkStatus);
}
第一个客户端连接正常。服务器监听,客户端连接,客户端断开连接。。。BUT客户端第二次尝试连接生成的客户端IP地址(如服务器所见)时,打印inet_ntoa(fromm.sin_addr))
将输出[0,0,0,0]
。因此,客户端"认为"它已经连接,但事实并非如此,服务器打印出它接受了连接,但无法发送任何数据。。。在客户端断开连接并尝试再次重新连接会导致
连接被拒绝10061错误。
(如果我从服务器端断开连接并监听新端口,则没有问题)
谢谢!!!
您正在用accept()
的结果覆盖正在侦听的服务器套接字s
,即连接的套接字。这是完全错误的-您应该在对accept()
的所有后续调用中重用您调用listen()
的同一服务器套接字,这将在每次表示来自客户端的全新TCP连接时为您提供一个新套接字。
相关文章:
- "unknown ca"自生成的 CA、证书和客户端/服务器
- 当我编译webrtc服务器时,Windows上只支持clang-cl
- 如何通过套接字将文本文件的内容从服务器发送到客户端
- 有没有办法知道Tracer是否成功地完全连接到了jaegerclientcpp中的jaeger后端服务器
- 从服务器传输到客户端的消息不会出现
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- OpenSSL TLS服务器-使用客户端证书白名单
- 我正在开发服务器,ip作为参数传递不起作用
- 我可以与 python 服务器而不是 c++ 客户端建立 tcp/ip 套接字吗?
- 提升 Asio TCP 服务器 处理多个客户端
- 如何在 Minecraft 服务器上执行命令
- 调试编译的服务器在数据库打开时崩溃
- C++套接字客户端到 Python 服务器未创建连接
- 用于解析 win64 堆栈跟踪的命令行客户端(可以访问符号服务器)
- 将相机数据从服务器实时流式传输到客户端
- 为什么创建服务器后C++ httplib 库阻塞了我的主线程?
- 每个服务器请求的内存预算
- 如何将 Firebase 与基于 Linux 的客户端应用配合使用,以便与服务器进行双向消息通信
- 服务器 Python 客户端 C++ 10061
- Winsock-正在将客户端重新连接到服务器-10061