这是我用来测试的程序
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));
从第二次连接后开始,我将 WSAError 设置为 10056 - 很容易理解,但在某些尝试中,即使第一次调用连接,我也开始得到 10061。我认为它在 5 或 6 个程序执行时开始发生。
为什么会这样?
更新:
至少我不会用一个套接字调用 connect 两次:)