无法连接到服务器(通过远程连接)
Unable to connect to server (over a remote connection)
我已经在这个项目上工作了一段时间,想通过远程连接测试一些新功能,但客户端无法连接(虽然它过去能够连接(。当地一切正常。目前我无法向前移植,所以我正在使用hamachi。我尝试使用 wireshark 捕获 hamachi 网络流量,客户端请求确实到达了,但服务器没有收到它们。
任何帮助将不胜感激。
代码(省略错误检查以使代码更具可读性(:
客户:
addrinfo ADDRESSINFO, *CLIENTINFO=NULL;
ZeroMemory(&ADDRESSINFO, sizeof(ADDRESSINFO));
ADDRESSINFO.ai_family = AF_INET;
ADDRESSINFO.ai_socktype = SOCK_STREAM;
ADDRESSINFO.ai_protocol = IPPROTO_TCP;
ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
getaddrinfo(strIP.c_str(), strPort.c_str(), &ADDRESSINFO, &CLIENTINFO);
connect(ConnectSocket, CLIENTINFO->ai_addr, CLIENTINFO->ai_addrlen);
freeaddrinfo(CLIENTINFO);
服务器:
addrinfo ADDRESSINFO, *SERVERINFO=NULL;
ZeroMemory(&ADDRESSINFO, sizeof(ADDRESSINFO));
ADDRESSINFO.ai_family = AF_INET;
ADDRESSINFO.ai_socktype = SOCK_STREAM;
ADDRESSINFO.ai_protocol = IPPROTO_TCP;
getaddrinfo(SERVER_IP, SERVER_PORT, &ADDRESSINFO, &SERVERINFO);
ListenSocket = socket(SERVERINFO->ai_family, SERVERINFO->ai_socktype, SERVERINFO->ai_protocol);
ConnectionSocket = socket(SERVERINFO->ai_family, SERVERINFO->ai_socktype, SERVERINFO->ai_protocol);
bind(ListenSocket, SERVERINFO->ai_addr, SERVERINFO->ai_addrlen);
freeaddrinfo(SERVERINFO);
listen( ListenSocket, SOMAXCONN )
while(true)
{
if(ConnectionSocket = accept(ListenSocket, NULL, NULL))
{
//do stuff
}
}
我不知道
您粘贴的代码有多精简,但是:
1) There is no place where you set destination address
2) There is no place you set destination port
3) To which port is server trying to bind?
。所以这根本行不通。此外,请处理错误 - (是的,你说你故意省略了它们(,但我敢打赌,如果服务器拒绝连接,你的错误处理表明了这一点。否则,它连接良好,但您另有要求。你还说:
1) 'the client failed to connect'
2) and later you say 'the client requests do arrive, but the server doesn't receive them'
如果您能够连接 - 您应该看到 3 路握手(TCP 流连接(。如果没有错误处理,wireshark 将显示这一点。您说客户端请求确实到达了,但您的代码没有发送任何内容(没有可用的发送代码(。您还说服务器没有收到它们 - 如果它连接并且您发送任何内容,则您的错误处理不可能显示任何内容,服务器也不会收到任何内容(但服务器代码缺少任何接收例程调用(。
我认为现在你无法得到太多帮助。更新你的代码,验证它是否真的在本地工作(你的意思是在这里环回,对吗?(,然后测试"非本地",添加错误处理并在客户端和服务器端使用wireshark。
相关文章:
- QTcpSocket在不阻塞GUI的情况下重新连接到服务器
- C++套接字客户端到 Python 服务器未创建连接
- 如何从远程 SFTP 服务器获取 HH-MM-SS 时间戳格式的文件列表
- C++ Winsock2 客户端未通过远程 IP 连接到服务器
- C UDP RecvFrom最终悬挂在远程连接上
- 通过 gdb 连接到远程 gdb 服务器时出错
- "MFC/C++ Socket programming.." 如何连接服务器和客户端?
- Libssh C 包装器 - 离开范围时基本的远程连接segfaults
- MySQL 服务器不接受远程连接
- 无法使用LDAP SSL连接服务器
- C++ Winsock 服务器-客户端远程连接
- 如何在Linux上使用Qt5访问远程MySQL服务器
- mysql 远程连接 - mysql CL 客户端工作,C++应用程序不工作
- 无法连接到服务器(通过远程连接)
- 从远程 MySQL 服务器本地导出.csv数据
- MySQL和Qt远程连接
- 如何在Windows平台中获取远程Windows服务器的共享文件夹的文件列表
- 远程连接MySQL是安全的吗?
- C++应用程序如何在不让MySQL服务器接受远程连接的情况下访问远程MySQL数据库
- 在远程Windows服务器(Windows Vista或更高版本)上捕获屏幕