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

    [C] Ma perchè mi si chiude?

    Cuai raga ho questo codice che serve a creare un socket server.
    Parte, ascolta, non appena gli arriva un messaggio lo riceve e poi mi da il messaggio "Premere un tasto per continuare..." io premo e si chiude... ma perchè? come si fa a lasciarlo li in loop?

    Codice PHP:
    #include <stdio.h>
    #include <winsock.h>
    #include <string.h>
      
    int main(int argcchar *argv[]){
        
    SOCKET listenSocket;
        
    SOCKET remoteSocket;
        
    SOCKADDR_IN Server_addr;
        
    SOCKADDR_IN Client_addr;
        
    int sin_size;
        
    short port=4000;
        
    char indirizzo[]="127.0.0.1";;     
        
    char buffer[256];     
        
    int wsastartup;
        
    int ls_result;
        
    WORD wVersionRequested MAKEWORD(2,2);
        
    WSADATA wsaData;
        
    wsastartup WSAStartup(wVersionRequested, &wsaData);
        if (
    wsastartup != NO_ERRORprintf("Error WSAStartup()\n");
         
        
    /* Creazione della Socket che si porrà in ascolto di richieste del Client*/
        
    listenSocket socket(AF_INETSOCK_STREAMIPPROTO_TCP);
        if (
    listenSocket 0)
        
    printf("Socket error!\n");
        else 
    printf("Server Listenting...\n");
         
        
    /* Effettua la bind sull’indirizzo e porta ora specificati */    
        
    Server_addr.sin_family AF_INET;
        
    Server_addr.sin_addr.s_addr inet_addr(indirizzo);
        
    Server_addr.sin_port htons(port);
         
        if (
    bind(listenSocket,(LPSOCKADDR)&Server_addr,sizeof(struct sockaddr)) < 0)
        
    printf("Server: Bind error.\n");
         
        
    /* La socket si pone in "ascolto" tramite la listen() */
        
    ls_result listen(listenSocketSOMAXCONN);
        if (
    ls_result 0printf("Server: Listen error.\n");
        else 
    printf("Socket Listening...\n");
          
        
    /* La socket accetta la richiesta di connessione del Client */
        
    sin_size sizeof(struct sockaddr_in);
        
    remoteSocket accept(listenSocket, (struct sockaddr *)&Client_addr,&sin_size);
        
    printf("Accettata Connessione con Client: %s\n",inet_ntoa(Client_addr.sin_addr));
          
        
    /* Il Server accetta il messaggio dal Client */
        
    recv(remoteSocketbuffersizeof(buffer), 0);
        
    printf("Messaggio Arrivato: %s \n"buffer);
          
        
    printf("Chiudo il Server");
        
    close(remoteSocket);
        
    WSACleanup();     
        
    system("pause");
        return 
    0;

    Ho provato anche ad eliminare le utlime 5 linee di codice, con il solo risultato che non mi da il messaggio "Premere un tasto per continuare..." ma si chiude lo stesso... bhoooo
    LorenzGames.Com the best place to play free flash games online.

  2. #2
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    scommetto che il codice l'hai scritto tu eh

    per farlo andare il loop devi avere un loop
    ci vuole un while(1), nel corpo ci metti il codice che vuoi che venga eseguito sempre

  3. #3
    no ma che scritto io, non ci capisco na mazza
    è solo un test che stavo facendo e non riuscivo a capire...
    ma il while esattamente dove andrebbe messo?

    scusate l'ignoranticismo
    LorenzGames.Com the best place to play free flash games online.

  4. #4
    Utente bannato
    Registrato dal
    Feb 2004
    Messaggi
    2,803
    Originariamente inviato da lorenz82
    no ma che scritto io, non ci capisco na mazza
    è solo un test che stavo facendo e non riuscivo a capire...
    ma il while esattamente dove andrebbe messo?

    scusate l'ignoranticismo
    era chiaro da come parlavi che non l'avessi scritto tu, ero ironico
    te l'avrei detto se l'avessi saputo con sicurezza, ma di connessioni remote non so niente

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.