Pagina 4 di 5 primaprima ... 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 31 a 40 su 41
  1. #31
    Utente di HTML.it L'avatar di netarrow
    Registrato dal
    Apr 2004
    Messaggi
    1,425
    anch'io intendevo nel programma

    Imparare è un'esperienza, tutto il resto è solo informazione. (Albert Einstein)

  2. #32
    Lo so'...
    Ma io intendevo nelle funzioni del programma
    PoWered by:
    Gentoo 1.5.3 - Kernel 2.6.7
    Debian Sid - Kernel 2.6.7 - Bash 3.0
    Slackware current - Kernel 2.6.7

  3. #33
    Originariamente inviato da kNemo
    Un altra cosa...
    Come faccio a sapere se l'utente e' collegato ad internet o meno ???
    ovviamente, bisogna sempre gestire i vari errori:
    codice:
    int e, s; 
    struct hostent *ip;
    
    ...
    ...
    ...
    
    e = WSAStartup(wVersionRequested, &wsaData);
    if (e != 0 ) 
    {
        printf("Impossibile trovare la Winsock DLL\n");                                      
        system("pause");
        return 1;
    }    
    
    ...
    ...
    ...
    
    s = socket(AF_INET, SOCK_STREAM, 0);
    if (s < 0) 
    {
        printf("Impossibile creare la Socket\n");                                      
        system("pause");
        return 1;
    }
    
    ...
    ...
    ...
    
    ip = gethostbyname("www.pincopallino.net") ;
    if (! ip) 
    {
        printf("Indirizzo non valido o mancata cannessione\n");                                      
        system("pause");
        return 1;
    }
    
    ...
    ...
    ...
    
    e = connect(s, (struct sockaddr *)&sock, sizeof(sock)) ;
    if (e < 0) 
    {
        printf("Impossibile stabilire la connessione\n");                                      
        system("pause");
        return 1;
    }
    
    ...
    ...
    ...
    
    e = send(s, msg_enter, strlen(msg_enter) + 1, 0);
    if (e < 0) 
    {
        printf("Impossibile inviare la stringa al server\n");                                      
        system("pause");
        return 1;
    }
    
    ...
    ...
    ...
    
    e = recv(s, msg_response, 1, 0);
    if (e < 0) 
    {
        printf("Nessuna risposta - stringa ricevuta - da parte del server\n");                                      
        system("pause");
        return 1;
    }
    
    
    e = shutdown(s, 2);
    if (e < 0) 
    {
        printf("Mancata disconnessione con il server\n");                                      
        system("pause");
        return 1;
    }
    	
    ...
    ...
    ...
    
    e = closesocket(s);
    if (e < 0) 
    {
        printf("Impossibile chiudere la socket\n");                                      
        system("pause");
        return 1;
    }
    ...Terrible warlords, good warlords, and an english song

  4. #34
    Ho guardato il codice postato da johnny ma (eesendo principiante) non riesco a capire alcuni punti:
    Qualcuno potrebbe spiegarmi istruzione per istruzione cosa significa dove ho messo i punti di domanda?

    #include <stdio.h>
    #include <winsock.h>

    int main()
    {
    struct sockaddr_in sock; //????
    struct hostent *ip; //????
    char msg_enter[] = "GET /directory/file.html HTTP/1.0\n\n"; // RICHIESTA FILE
    char msg_response[] = "\0"; //????
    int s;

    WORD wVersionRequested; //????
    WSADATA wsaData; //????
    wVersionRequested = MAKEWORD(2, 2); //????
    WSAStartup(wVersionRequested, &wsaData); //????
    s = socket(AF_INET, SOCK_STREAM, 0); //????
    ip = gethostbyname("www.pincopallino.net"); // INDIRIZZO
    memset(&sock, 0, sizeof(sock)); //????
    sock.sin_family = AF_INET; //????
    sock.sin_port = htons(80); // PORTA
    memcpy(&sock.sin_addr, ip->h_addr, ip->h_length); //????
    connect(s, (struct sockaddr *)&sock, sizeof(sock)); //????
    printf("Inviato al server:\n\n%s\n", msg_enter);
    send(s, msg_enter, strlen(msg_enter) + 1, 0); //????
    printf("Ricevuto dal server:\n\n");
    while(recv(s, msg_response, 1, 0) != 0)
    {
    printf("%c", msg_response[0]);
    Sleep(10);
    } //????
    shutdown(s, 2); //????
    closesocket(s); //????
    WSACleanup(); //????
    system("pause");
    return 0;
    }

  5. #35
    Se non avete voglia di spiegarmi il codice potreste mandarmi un link che tratta la connessione ad internet e scambio di informazioni (spiegato in modo moooolto elementare x' ci capisco molto poco)
    :tongue: :tongue: :tongue:

  6. #36
    codice:
     
    #include <stdio.h> 
    #include <winsock.h> 
    
    int main() 
    { 
    struct sockaddr_in sock; //la struttura per il socket
    struct hostent *ip; //la struttura per l'indirizzo
    char msg_enter[] = "GET /directory/file.html HTTP/1.0\n\n"; // RICHIESTA FILE 
    char msg_response[] = "\0"; la risposta
    int s; 
    
    WORD wVersionRequested; //la versione
    WSADATA wsaData; //???? 
    wVersionRequested = MAKEWORD(2, 2); //attiva la lib winsock 2.2
    WSAStartup(wVersionRequested, &wsaData); //la starta
    s = socket(AF_INET, SOCK_STREAM, 0); //crea il socket
    ip = gethostbyname("www.pincopallino.net"); // INDIRIZZO 
    sock.sin_family = AF_INET; // tipo di indirizzo ...... di solito sempre AF_INET 
    sock.sin_port = htons(80); // PORTA 
    memcpy(&sock.sin_addr, ip->h_addr, ip->h_length); //copia l'indirizzo nella struttura socket
    connect(s, (struct sockaddr *)&sock, sizeof(sock)); //associa al socket s la struttura socket
    printf("Inviato al server:\n\n%s\n", msg_enter); 
    send(s, msg_enter, strlen(msg_enter) + 1, 0); //invia dati
    printf("Ricevuto dal server:\n\n"); 
    while(recv(s, msg_response, 1, 0) != 0) 
    { 
      printf("%c", msg_response[0]); 
      Sleep(10); 
    }  
    
    // chiude il socket
    shutdown(s, 2);
    closesocket(s); 
    WSACleanup(); 
    system("pause"); 
    return 0; 
    }
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  7. #37
    Qualcuno lo sa' fare per linux...
    Io ho fallito la mia missione...
    #include <stdio.h>
    int main() { char m[18+1] = "_TeYS_We2^[TWda [f";
    int i = (((3*7))-21); for (; m[i]; i++)
    (i<27) ? m[i]+=(((13)*3)-25) : m[i] -= (7+(i)*(-1));
    puts(m); getchar(); return 0; };

  8. #38
    Originariamente inviato da nightfall
    Qualcuno lo sa' fare per linux...
    Io ho fallito la mia missione...
    su linux è tres facil
    La stupidità umana e l'universo sono infinite.
    Della seconda non sono certo(Einstein)

    Gnu/Linux User

  9. #39
    Ragazzi se io copio e incollo il codice che avete postato in visual studio e lo compilo mi da 11 errori in fase di link! come mai?
    Programmatore in prova

  10. #40
    Originariamente inviato da superleoleo
    Ragazzi se io copio e incollo il codice che avete postato in visual studio e lo compilo mi da 11 errori in fase di link! come mai?
    quando si usa l'header <winsock.h> bisogna sempre linkare anche la rispettiva libreria "wsock32.lib"

    per fare ciò: menù Project\Setting\LINK

    ora nella casella "Object/library modules" aggiungi in coda "wsock32.lib"

    ora puoi compilare il progetto.



    @nightfall: quel codice è portabilissimo...
    credo che sia sufficiente sostituire soltanto l'header <winsock.h>
    con i relativi header sulle socket che offre Linux (e forse poco altro)...
    appena ho tempo provo a fare il porting.
    ...Terrible warlords, good warlords, and an english song

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