何が起こっているのかわかりません。localhost 以外の場所 (「localhost」、「127.0.0.1」、またはマシンの外部 IP) にソケットを作成すると、正常に動作します。そのポートで何かをリッスンせずにアドレスへのソケットを作成すると、10060 (タイムアウト) が返されますが、意味のある 10061 は返されません。ローカルホストに行くときに接続が拒否されるのはなぜですか。面倒なのでファイアウォールを無効にしてみましたが、そうではありませんでした
この前に、すべての WSA 初期化を行っています。
_socketToServer = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if(_socketToServer == -1){
return false;
}
p_int = (int*)malloc(sizeof(int));
*p_int = 1;
if( (setsockopt(_socketToServer, SOL_SOCKET, SO_REUSEADDR,
(char*)p_int, sizeof(int)) == -1 )||
(setsockopt(_socketToServer, SOL_SOCKET, SO_KEEPALIVE, (char*)p_int,
sizeof(int)) == -1 ) ){
free(p_int);
return false;
}
free(p_int);
struct sockaddr_in my_addr;
my_addr.sin_family = AF_INET ;
my_addr.sin_port = htons(_serverPort);
memset(&(my_addr.sin_zero), 0, 8);
my_addr.sin_addr.s_addr = inet_addr(_serverIP);
if( connect( _socketToServer, (struct sockaddr*)&my_addr, sizeof(my_addr))
== SOCKET_ERROR ){
DWORD error = GetLastError(); //here is where I get the 10061
return false;
}
何か案は?