これは私がテストに使用するプログラムです
SOCKET s = socket(AF_INET, SOCK_STREAM, 0);
int noDelay = 1;
setsockopt(s, IPPROTO_TCP, TCP_NODELAY, reinterpret_cast < const char* >(&noDelay), sizeof(noDelay)
sockaddr_in serverAddress;
serverAddress.sin_addr.S_un.S_addr = inet_addr("127.0.0.1");
serverAddress.sin_family = AF_INET;
serverAddress.sin_port = htons(static_cast<unsigned short int>(port));
iResult = connect(s, (struct sockaddr*) &serverAddress, sizeof(serverAddress));
iResult = connect(s, (struct sockaddr*) &serverAddress, sizeof(serverAddress));
2回目の接続後の最初から、WSAErrorが10056に設定されています-かなり理解できますが、接続するための最初の呼び出しでも10061を取得し始める場合があります。5、6回のプログラム実行で発生し始めると思います。
なぜそれができるのですか?
アップデート:
少なくとも、1 つのソケットで connect を 2 回呼び出す必要はありません :)