Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30

    [C] Interazione TCP Client/Server

    Ciao a tutti, in questa prima parte di codice in c per costruire una semplice interazione tra un client e un server sono arrivato a un punto in cui ho un paio di errori che non capisco:

    codice:
    #include <winsock.h>
    
    #include <stdio.h>
    #include <stdlib.h> // for atoi()
    #define PROTOPORT 5193 //default protocol port number
    #define QLEN 6 // size of request queue
    
    void ErrorHandler (char *errorMessage) {
    printf (errorMessage);
    }
    
    void ClearWinSock() {
    WSACleanup ();
    }
    
    
    int main (int argc, char *argv[]) {
    int port;
    if (argc>1) {
        port = atoi (argv[1]); //if argument specified convert argument to binary
    }
    else
        port = PROTOPORT; //use dafault port number
    if (port < 0) {
        printf ("bad port number %s \n", argv[1]);
    return 0;
    }
    
    
    WSADATA wsaData;
    int iResult = WSAStartup (MAKEWORD(2,2), &wsaData);
    
    if (iResult != 0) {
        ErrorHandler ("Error at WSAStartup()\n");
        return 0;
    }
    In particolare nell'ultimo pezzo:

    codice:
    WSADATA wsaData;
    int iResult = WSAStartup (MAKEWORD(2,2), &wsaData);
    
    if (iResult != 0) {
        ErrorHandler ("Error at WSAStartup()\n");
        return 0;
    }
    Sull'if ricevo "syntax error"...che non comprendo purtroppo.
    Sulla funzione ErrorHandler ricevo "control reaches end of non-void function" che da quello che ho capito significa che si aspetta un valore, mentre la funzione è void. Ma non capisco che valore...

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Dunque, sull'if ho risolto perchè avevo dimenticato la chiusura della } di tutto il main.
    Resta l'errore sulla funzione...

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,299
    Ma dopo la prima correzione hai ricompilato?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Quote Originariamente inviata da oregon Visualizza il messaggio
    Ma dopo la prima correzione hai ricompilato?
    Sì...rimane quell'errore e "expected declaration or statement at the end of input"...

  5. #5
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,299
    Posta nuovamente il codice intero e corretto.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  6. #6
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    codice:
    #include <winsock.h>
    
    #include <stdio.h>
    #include <stdlib.h> // for atoi()
    #define PROTOPORT 5193 //default protocol port number
    #define QLEN 6 // size of request queue
    
    void ErrorHandler (char *errorMessage) {
    printf (errorMessage);
    }
    
    void ClearWinSock() {
    WSACleanup ();
    }
    
    
    int main (int argc, char *argv[]) {
    int port;
    if (argc>1) {
        port = atoi (argv[1]); //if argument specified convert argument to binary
    }
    else
        port = PROTOPORT; //use dafault port number
    if (port < 0) {
        printf ("bad port number %s \n", argv[1]);
    return 0;
    }
    
    
    WSADATA wsaData;
    int iResult = WSAStartup (MAKEWORD(2,2), &wsaData);
    
    if (iResult != 0) {
        ErrorHandler ("Error at WSAStartup()\n");
        return 0;
    }
    
    }

  7. #7
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,299
    Compilando questo codice non ho errori.
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  8. #8
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Faccio build all e mi esce ora solo un triangolino giallo del warning...messaggio sempre lo stesso: control reaches end of non-void function.
    Provo ad andare avanti col programma..

  9. #9
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,299
    Alla fine, tra le due ultime parentesi, potresti aggiungere un return 0

    codice:
      } 
      return 0;
    }
    


    Ma con cosa stai compilando?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  10. #10
    Utente di HTML.it
    Registrato dal
    Jan 2015
    Messaggi
    30
    Eclipse + minigw.

    Ho completato il programma ed ho un bind() failed.

    Tu intendi di mettere quel return alla fine di tutto il programma o dove avevo l'errore? Perchè dove avevo l'errore ho provato a farlo e non cambiava...ora il bello è che terminato il programma quell'errore non viene più segnalato.

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 © 2020 vBulletin Solutions, Inc. All rights reserved.