Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [C++] Erore symbol.. e che è?

    Ecco il mio listato privo di errori

    #inizio codice

    // all'inizio includo tutti i file necessari

    #include <windows.h>
    #include <winsock.h>
    #include <stdio.h>
    int main()
    {
    SOCKET miosock; // il miosock socket che riceverà i dati e li invierà
    sockaddr_in miosock_addr; // le impostazioni del miosock socket
    WSADATA data; // questa variabile contiene i parametri di WSAStartup()
    WORD p;
    int err=0; // variabile per gestire gli errori(orrori)
    p=MAKEWORD(2,0); // creo la variabile p che contiene la versione della wsock32.dll
    err=WSAStartup(p,&data); // inizializzo la wsock32.dll
    char ch;
    miosock=socket(PF_INET,SOCK_STREAM,0); // inizializzo il socket
    miosock_addr.sin_family=PF_INET; // si usa il protocollo TCP/IP
    miosock_addr.sin_port=htons(IPPORT_TELNET); //la porta a cui connettersi
    miosock_addr.sin_addr.S_un.S_un_b.s_b1=127; // si crea l' indirizzo IP (nel nostro caso: 127.0.0.1)
    miosock_addr.sin_addr.S_un.S_un_b.s_b2=0;
    miosock_addr.sin_addr.S_un.S_un_b.s_b3=0;
    miosock_addr.sin_addr.S_un.S_un_b.s_b4=1;
    int lun=sizeof(struct sockaddr);
    err=connect(miosock,(struct sockaddr*)&miosock_addr,lun); // finalmente mi connetto al Server

    /*La funzione err=CONNECT(SOCKET sock,(struct sockaddr*),int len) è quella che "connette" il socket al server e come avete visto i parametri sono il socket(nel nostro caso "miosock"), la variabile miosock_addr (che va convertita alla strutura dati sockaddr, e infine la grandezza della struttura sockaddr espressa da sizeof(struct sockaddr).*/

    char mess[100]; // il messaggio inviato dal Server (con un massimo di 100 byte)
    int n=0;
    n=recv(miosock,mess,100,0); // si riceve il messaggio di benvenuto dal Server
    mess[n]=0; // n rappresenta la lunghezza del messaggio in arrivo (ho stabilito un massimo di 100 byte)
    printf(mess); // e lo visualizzo
    while(ch!=0x1b) // finchè ch è diverso dal tasto ESC
    {
    ch=getchar(); // aspetto un carattere
    send(miosock,&ch,1,0); // e lo invio al Server
    }
    closesocket(miosock); // si chiude il socket
    return 0; // The End
    }

    #fine codice

    Ora perchè quando lo compilo mi dice che ci sono errori nel symbol o roba simile?

  2. #2
    Incolla qui il testo esteso dell'errore del VC++ o perlomeno il codice

  3. #3
    Ciao brainforce

    Postami il link dal quale hai scaricato il sorgente...

    Sono sicuro che non è codice standard del "Visual C++" di Microsoft
    e nemmeno del "Turbo C++" della Borland

    Ho provato a compilare/linkare il tuo codice e mi ha restituito
    una sfilza di errori...
    codice:
    --------------------Configuration: prova - Win32 Debug--------------------
    Compiling...
    socket.cpp
    Linking...
    prova.obj : error LNK2001: unresolved external symbol _closesocket@4
    prova.obj : error LNK2001: unresolved external symbol _send@16
    prova.obj : error LNK2001: unresolved external symbol _recv@16
    prova.obj : error LNK2001: unresolved external symbol _connect@12
    prova.obj : error LNK2001: unresolved external symbol _htons@4
    prova.obj : error LNK2001: unresolved external symbol _socket@12
    prova.obj : error LNK2001: unresolved external symbol _WSAStartup@8
    Debug/prova.exe : fatal error LNK1120: 7 unresolved externals
    Error executing link.exe.
    
    socket.exe - 8 error(s), 0 warning(s)
    L'errore sta nel LINKER!!! (nel linkare la libreria winsock.dll che winsock.h chiama)

    Prova a cercare un listato ad hoc per il Visual C++
    leggi questo 3d:
    http://forum.html.it/forum/showthrea...hreadid=391912

    ...Terrible warlords, good warlords, and an english song

  4. #4
    Esatto, brainforce magari linkaci al tuo progetto vc++ (intendo al .dsp ) così da vedere che librerie stai linkando

  5. #5
    Per usare il Winsock vanno linkate le librerie wsock32.lib e ws2_32.lib.

  6. #6
    Era una miniguida letta sula rete.....

    Ne provero di altre. Grazie a tutti.

    L'errore counque credo stia proprio nelle librerie.

    Ne provo un altra e vi dico.

    Jhonny una volta postasti un codice semplice semplice di client server, non è che te lo ritrovi ancora?

    Vorrei una cosa semplice semplice, giusto un client che invia ciao al server ed il server li rispondesse con hallo.

    Per capire come funge il tutto insomma.

    Thanks.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.