何が起こっているのか分かりません。 localhost( "localhost"、 "127.0.0.1"またはマシンの外部IPのいずれか)以外の場所にソケットを作成した場合、正常に動作します。 私はそのポートで何かを聞くことなく、私は10060(タイムアウト)を取得するが、意味がある10061を取得することなく、アドレスへのソケットを作成する場合。なぜ私はlocalhostに行くときに接続が拒否されているのですか? ファイアウォールを無効にしようとしましたが、それは問題ではありませんでしたが、それはそうではありません。Winsockはローカルホストにのみ接続すると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;
}
ファイアウォールやマルウェア対策のようなものです。あなたは実際にポートでリッスンしているプログラムを実行していますか? –
ポート番号は何ですか?あなたは10060を受け取るか、実際に接続したいと思いますか? – marcinj
私は9001,9002 ... 9033を試しました。彼らのどれも働かなかった。 私は聞いているプログラムを持っていますが、私は同じ結果を得ていません。 リモートクライアントから動作します。実際にテストするだけで、同じマシン内からパテを介してポートを開こうとしましたが、接続を開始できます! (サーバーコードは自動的にデータを送信し、端末に表示されているデータを自動的に送信します)。私は非常に混乱しています – cloudraven