这是我用来测试的程序
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个程序执行。
为什么会这样?
更新:
至少我不能用一个插座调用两次连接:)