我正在尝试使用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;
}
感谢。
答案 0 :(得分:3)
通常,ECONNREFUSED表示您尝试连接的计算机拒绝接受连接。通常的原因是没有程序监听目标计算机上的指定端口。
您可以通过从DOS提示符运行telnet到同一主机和端口来确认是这种情况,例如:
telnet 192.168.1.99 1234
(当然,用适当的IP地址和端口号替换上面的示例参数)。如果telnet立即退出“拒绝连接”方法,那么您就知道问题出在远程计算机上。如果它连接并保持连接,则本地计算机程序更有可能出现此问题。