Bład programu typu serwer- błąd w argumencie funkcji ZeroMemory

0

Dzień dobry,

Uczę się przepisując kod linia po linii próbuje analizować ,ale coś tu nie bangla i ja niestety nie wiem co ,tym bardziej frustrujący jest fakt ,że kod pochodzi ze strony MSDN-u :(.


#include <winsock2.h>
#include <iostream>

using namespace std;
int main(){

    //init WINSOCK OBIECT
    //Create a WSADATA object called 
    //https://msdn.microsoft.com/en-us/library/windows/desktop/ms741563(v=vs.85).aspx
    WSADATA wsadata;

    //Wywołaanie WSAStartup oraz zwrocenie watrosci jako liczbe typu INT orazsprawdzenie czy nie wystąpił błąd
    int wsaResult = WSAStartup(MAKEWORD(2,2),&wsadata);

    if(wsaResult != 0 )
    {

        cout << "Kod bledu -> "<< GetLastError();
        return 1;
    }

    //create socket for server

    #define port "2705"

    struct addrinfo *result = NULL, *ptr = NULL,hints; //Tu się zaczyna problem ,hints jest nie kompletne ? 

    ZeroMemory(&hints, sizeof (hints));
hints.ai_family = AF_INET;
hints.ai_socktype = SOCK_STREAM;
hints.ai_protocol = IPPROTO_TCP;
hints.ai_flags = AI_PASSIVE;

error: aggregate 'main()::addrinfo hints' has incomplete type and cannot be defined|
error: 'AI_PASSIVE' was not declared in this scope|
warning: unused variable 'result' [-Wunused-variable]|
warning: unused variable 'ptr' [-Wunused-variable]|

Korzystam z Code::Blocks 16.01 32-bity,System Windows 7 Pro 64-bit , kompilator Gnu Gcc z zaznaczoną opcją kompilacji -std=c++11

0

Generalnie błąd wynika z braku dołączenia nagłówka z deklaracją addrinfo. Popatrz na tę odpowiedź: https://stackoverflow.com/a/7573230 aczkolwiek tam jest programowanie w Linuksie, a tutaj masz kod Windowsowy.

0

Nie rozumiem jednej rzeczy .. czemu to na stronie MSDN-u jest no nie wiem .. błąd ? Nie chce używać tego słowa bo laik jestem i dopiero raczkuje ,ale kurcze nie umiem inaczej tego nazwać

0

Ten kod pewnie się kompiluje pod którąś wersją VC++, natomiast jeśli chcesz używać gcc to już jesteś zdany na siebie. Jeśli coś nie jest w standardzie, to kompilatory mogą to zdeklarować w różnych plikach nagłówkowych.

1 użytkowników online, w tym zalogowanych: 0, gości: 1