Avatar billede repsak Nybegynder
21. marts 2003 - 20:13 Der er 12 kommentarer og
1 løsning

Opret en serversocket

Heysa
Hvordan laver jeg en MEGET simpelt server?
Min kode er som følger:
CSocket * soc = new CSocket();
        cout << "Creating... "<< endl;
        if(soc->Create(4011)){
            cout << "Listening... "<< endl;
            if(soc->Listen()){
                CSocket klient;
                cout << "Accepting... "<< endl;
                if(soc->Accept(klient)){
                    cout << "Connected... OK"<< endl;
                }
            }
        }
        else cout << "Not connected" << endl;

Dette compiler men soc.Create(4011) returnerer 0 = fejl... Hvordan får jg det til at køre???
Avatar billede arne_v Ekspert
21. marts 2003 - 20:18 #1
Kald GetLastError og se hvad fejlen er !
Avatar billede repsak Nybegynder
21. marts 2003 - 20:20 #2
GetLastError giver 10093 :)
Avatar billede arne_v Ekspert
21. marts 2003 - 20:22 #3
10093 Either the application has not called WSAStartup, or WSAStartup failed. WSANOTINITIALISED
Avatar billede arne_v Ekspert
21. marts 2003 - 20:22 #4
Så er WSAStartup blevet kaldt ?
Avatar billede repsak Nybegynder
21. marts 2003 - 20:23 #5
Avatar billede repsak Nybegynder
21. marts 2003 - 20:24 #6
nej... ovenstående kode er det eneste som jeg har tilføjet til Visual Studios guide... Hvor/hvordan kaldes den?
Avatar billede arne_v Ekspert
21. marts 2003 - 20:24 #7
Det link er VB ikke VC++ !
Avatar billede repsak Nybegynder
21. marts 2003 - 20:34 #9
-> arne_v
kan du ikke skrive et lille eksempel? Jeg er ret ny i C++ og siden siger mig ikke så meget ...:(
Avatar billede arne_v Ekspert
21. marts 2003 - 20:39 #10
Du kopierer bare hele kode-fragmentet !

WORD wVersionRequested;
WSADATA wsaData;
int err;

wVersionRequested = MAKEWORD( 2, 2 );

err = WSAStartup( wVersionRequested, &wsaData );
if ( err != 0 ) {
    /* Tell the user that we could not find a usable */
    /* WinSock DLL.                                  */
    return;
}

/* Confirm that the WinSock DLL supports 2.2.*/
/* Note that if the DLL supports versions greater    */
/* than 2.2 in addition to 2.2, it will still return */
/* 2.2 in wVersion since that is the version we      */
/* requested.                                        */

if ( LOBYTE( wsaData.wVersion ) != 2 ||
        HIBYTE( wsaData.wVersion ) != 2 ) {
    /* Tell the user that we could not find a usable */
    /* WinSock DLL.                                  */
    WSACleanup( );
    return;
}

/* The WinSock DLL is acceptable. Proceed. */
Avatar billede arne_v Ekspert
21. marts 2003 - 20:40 #11
Sæt det ind i noget opstarts kode.
Avatar billede arne_v Ekspert
21. marts 2003 - 20:41 #12
Hvis du ikke gider checke so meget, så nøjes du med:

WORD wVersionRequested = MAKEWORD( 2, 2 );
WSADATA wsaData;
int err = WSAStartup( wVersionRequested, &wsaData );
Avatar billede repsak Nybegynder
21. marts 2003 - 20:45 #13
Mange tak!!! Kanon support fra dig der :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester