Kiedy kompiluję jakiś kod z tutoriala:
WORD version = MAKEWORD(2,2);
WSADATA wsaData; // nasze WSA
if(WSAStartup(version, &wsaData) != 0) // tworzymy WSA
{
cout << "Blad inicjalizacji WSA" << endl;
WSACleanup(); // usuwamy WSA
return 1;
}
if( LOBYTE(wsaData.wVersion) != 2 ||
HIBYTE(wsaData.wVersion) != 2 )
{
cout << "Nieprawidlowa wersja" << endl;
WSACleanup(); // usuwamy WSA
return 1;
}
SOCKET sListen, // nasze "ucho"
sClient; // nasz klient
sListen = socket( AF_INET, SOCK_STREAM, IPPROTO_IP);
if( sListen == SOCKET_ERROR ) // sprawdzamy czy sie ud
{
cout << "Nie mozna stworzyc ucha" << endl;
WSACleanup();
return 1;
}
sockaddr_in local; // ustawienia serwera
int port = 6789; // nasz przydowy port
memset(&local, 0, sizeof(local));
local.sin_addr.s_addr = htonl(INADDR_ANY);
local.sin_family = AF_INET; // korzystamy z TCP/IP
local.sin_port = htons((u_short)port); // wybieramy port
if (bind(sListen, (sockaddr*)&local, sizeof(local)) == SOCKET_ERROR)
{
cout << "Bind zakonczony porazka" << endl;
closesocket(sListen);
WSACleanup();
return 1;
}
if(listen(sListen, SOMAXCONN) == SOCKET_ERROR)
{
cout << "Operacja dodania sluchu nieudana" << endl;
closesocket(sListen);
WSACleanup();
return 1;
}
sockaddr_in client;
sClient = accept (sListen, (sockaddr*)&client, (int*) sizeof(client));
Sleep(10000);
if(sClient == INVALID_SOCKET)
{
cout << "Niepoprawne polaczenie!" << endl;
closesocket(sClient);
closesocket(sListen);
WSACleanup();
return 1;
}
który wcześniej działał na XP x32, na systemie jak w tytule wyświetla "Niepoprawne polaczenie".
Co z tym nie tak?