Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66

    [C++]Problema socket

    Salve, sono nuovo nella programmazione networking in c++ e volevo realizzare un programmino ke si connetta semplicemente ad una porta e rimanga connesso.
    Io utilizzo devc++ e ho scritto questo codice guidato dall'editor stesso ke mi suggeriva alcune cose, sapreste dirmi dove sbaglio?


    #include <winsock2.h>
    #include <windows.h>
    #include <string.h>

    int main (){
    SOCKET soc1(0,0,0)
    connect(soc1,"127.0.0.1",1093)
    system("PAUSE");
    return 1;
    }

    se ho errato tutto potreste dirmi come fare da capo?

  2. #2
    Utente di HTML.it L'avatar di XWolverineX
    Registrato dal
    Aug 2005
    residenza
    Prague
    Messaggi
    2,565
    codice:
     SOCKET soc1(0,0,0)
    Una struttura socket non si inizializza in questo modo, ma chiamando la funzine socket
    codice:
     SOCKET sock = socket(AF_INET,0,0)
    Gli argomenti potrebbero non essere giusti!
    "Se proprio devono piratare, almeno piratino il nostro." (Bill Gates)

    "Non è possibile che 2 istituzioni statali mi mettano esami nello stesso giorno." (XWolverineX)

    http://xvincentx.netsons.org/programBlog

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    ora mi da un errore nella settima riga

    codice:
    #include <winsock2.h> 
    #include <windows.h> 
    #include <string.h> 
    
    int main (){
    SOCKET soc1 = socket(AF_INET,0,0)//errore*
    int connect(soc1,"127.0.0.1",1039)
    system("PAUSE");
    return 1;
    }
    errore*=7 D:\Documents and Settings\Proprietario\Desktop\SenzaTitolo1.cpp cannot convert `const char*' to `const sockaddr*' for argument `2' to `int connect(SOCKET, const sockaddr*, int)'

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    sono riuscito a correggere applicandomi un pò ora c'è un nuovo errore ke proprio non capisco °_°

    riga 8 errore:"initializer expression list treated as compound expression"

    codice:
    #include <winsock2.h> 
    #include <windows.h> 
    #include <string.h> 
    #define address1
    
    int main(){
    SOCKET soc1 = socket(AF_INET,0,0);
    int connect(soc1,address1 "127.0.0.1",1039);//errore
    system("PAUSE");
    return 1;
    }
    non ho capito bene se ha sbagliato qualcosa nell'inizializzazione o cosa

  5. #5
    Quell'istruzione non ha nessun senso; connect dovrebbe essere una funzione o una variabile?
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    una funzione però non riesco a usarla
    l'editore me la presenta così:

    codice:
    int PASCAL connect(SOCKET,const struct sockaddr*,int);

  7. #7
    L'autore (Microsoft) te la presenta correttamente sotto forma di prototipo, ma int indica il tipo restituito, non il modo in cui devi usarla! In secondo luogo quel "address1 "127.0.0.1"" non vuol dire niente; dovrai procedere in questa maniera:
    codice:
    #include <winsock2.h> 
    #include <windows.h> 
    #include <string.h> 
    #define address1
    
    int main(){
    sockaddr name;
    int ret;
    SOCKET soc1 = socket(AF_INET,0,0);
    name.sin_family=AF_INET;
    name.sin_port=0;
    name.sin_addr.S_un_b.s_b1=127;
    name.sin_addr.S_un_b.s_b2=0;
    name.sin_addr.S_un_b.s_b3=0;
    name.sin_addr.S_un_b.s_b4=1;
    ret = connect(soc1,name,sizeof(name));
    if (ret)
    {
        cout<<"Errore "<<ret<<" durante la connessione.";
        return 1;
    }
    //...
    system("PAUSE");
    return 0; //restituire sempre zero se non si verificano errori!
    }
    Amaro C++, il gusto pieno dell'undefined behavior.

  8. #8
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    grande ora provo, cmq hai mica una guida dove si illustra l'esatto uso di un socket?

  9. #9
    Guarda che in ogni caso questo codice resta errato, perché prima di chiamare connect devi prima richiamare un po' di altre API... i socket non sono semplicissimi, non puoi inventarti il loro uso senza neanche saper richiamare una funzione sapendo il suo prototipo...
    Amaro C++, il gusto pieno dell'undefined behavior.

  10. #10
    Utente di HTML.it
    Registrato dal
    Mar 2006
    Messaggi
    66
    c'è una guida o qualcosa ke spieghi l'esatto funzionamento?

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.