我正在尝试使用 Connect api 连接到设备。它给我 WSAECONNREFUSED 错误。 当我连接了两个设备并尝试连接到其中一个设备时,就会发生这种情况。如果我只连接一台设备,那么 connectino 会正常运行。
你们谁能告诉我这里的问题。
这是我的代码:
sockaddr_in my_addr;
my_addr.sin_family = (USHORT)AF_INET ;
my_addr.sin_port = htons((USHORT)host_port);
memset(&(my_addr.sin_zero), 0, (size_t)8);
my_addr.sin_addr.s_addr = inet_addr(pHostName);
if (connect( (SOCKET)*uiSocket, (struct sockaddr*)&my_addr,
sizeof(my_addr)) == SOCKET_ERROR )
{
int err = WSAGetLastError();
fprintf(stderr, "Error connecting socket %d\n", WSAGetLastError());
closeCxn();
return false;
}
谢谢。
最佳答案
通常 ECONNREFUSED 表示您尝试连接的计算机拒绝接受连接。通常的原因是目标计算机上没有监听指定端口的程序。
您可以通过从 DOS 提示符运行 telnet 到同一主机和端口来确认是这种情况,例如:
远程登录 192.168.1.99 1234
(当然,用适当的 IP 地址和端口号替换上面的示例参数)。如果 telnet 立即退出并显示“连接被拒绝”方法,那么您就知道问题出在远程计算机上。如果它已连接并保持连接状态,则问题更有可能出在您本地计算机的程序上。
关于windows - 连接(): WSAECONNREFUSED on connect,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21254677/