#define WIN32_LEAN_AND_MEAN #include #include #include #include #include #define FIONBIO_PROPER 0x8004667e int main(int argc, char **argv) { WSADATA wsaData; SOCKET ConnectSocket = INVALID_SOCKET; int iResult; DWORD dResult; unsigned long param1 = 1; unsigned int param2 = 1; int iRet = 0; // Initialize Winsock iResult = WSAStartup(MAKEWORD(2,2), &wsaData); if (iResult != 0) { printf("WSAStartup failed with error: %d\n", iResult); return 1; } ConnectSocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if (ConnectSocket == INVALID_SOCKET) { printf("socket failed with error: %ld\n", WSAGetLastError()); WSACleanup(); return 1; } printf("Calling WSAIoctl with FIONBIO = %08x - sizeof(param1) = %d\n", FIONBIO, sizeof(param1)); iResult = WSAIoctl(ConnectSocket, FIONBIO, ¶m1, sizeof(param1), NULL, 0, &dResult, NULL, NULL); if (iResult != 0) { printf("WSAIoctl failed with error: %d\n", iResult); iRet = 1; } else { printf("Success.\n"); } printf("Calling WSAIoctl with FIONBIO = %08x - sizeof(param2) = %d\n", FIONBIO, sizeof(param2)); iResult = WSAIoctl(ConnectSocket, FIONBIO, ¶m2, sizeof(param2), NULL, 0, &dResult, NULL, NULL); if (iResult != 0) { printf("WSAIoctl failed with error: %d\n", iResult); iRet = 1; } else { printf("Success.\n"); } printf("Calling WSAIoctl with FIONBIO_PROPER = %08x - sizeof(param1) = %d\n", FIONBIO_PROPER, sizeof(param1)); iResult = WSAIoctl(ConnectSocket, FIONBIO_PROPER, ¶m1, sizeof(param1), NULL, 0, &dResult, NULL, NULL); if (iResult != 0) { printf("WSAIoctl failed with error: %d\n", iResult); iRet = 1; } else { printf("Success.\n"); } printf("Calling WSAIoctl with FIONBIO_PROPER = %08x - sizeof(param2) = %d\n", FIONBIO_PROPER, sizeof(param2)); iResult = WSAIoctl(ConnectSocket, FIONBIO_PROPER, ¶m2, sizeof(param2), NULL, 0, &dResult, NULL, NULL); if (iResult != 0) { printf("WSAIoctl failed with error: %d\n", iResult); iRet = 1; } else { printf("Success.\n"); } closesocket(ConnectSocket); WSACleanup(); return iRet; }