Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13
  1. #1

    [C] Server in linguaggio C

    Salve ragazzi sono nuovo di questo forum, sto cercando su questo sito e su altri ma ptroprio non trovo nulla, ora vi spiego il mio problema:

    devo programmare un server in linguaggio c sotto linux che comunica contemporaneamente con + client e con + agent, se un client deve richiede informazioni deve avere al precedenza sugli agent, come posso fare la struttura di questo server?
    io avevo pensato a fare due array di file descriptor uno per i client e uno per gli agent ma poi non riesco a gestire la sincoronizzazione e la connessione...

    spero m possiate aiutare
    grazie in aticipo
    Il GrandeAlucard

  2. #2

    Re: [C] Server in linguaggio C

    Originariamente inviato da GrandeAlucard
    Salve ragazzi sono nuovo di questo forum, sto cercando su questo sito e su altri ma ptroprio non trovo nulla, ora vi spiego il mio problema:

    devo programmare un server in linguaggio c sotto linux che comunica contemporaneamente con + client e con + agent, se un client deve richiede informazioni deve avere al precedenza sugli agent, come posso fare la struttura di questo server?
    io avevo pensato a fare due array di file descriptor uno per i client e uno per gli agent ma poi non riesco a gestire la sincoronizzazione e la connessione...

    spero m possiate aiutare
    grazie in aticipo
    Il GrandeAlucard
    Attraverso quale canale di comunicazione dovrebbe avvenire la comunicazione?
    • file
    • pipe
    • socket
    • DB
    • altro...

    e quali protocolli di comunicazione?

  3. #3
    attraverso socket... t mostro la funzione che ho usato per la connessione al server da parte del client e dell'agent:


    int connection (char* host, char* port )
    { int sockfd;
    struct sockaddr_in server;
    int flag;

    server.sin_family = AF_INET;
    server.sin_port = htons (atoi(port));
    server.sin_addr.s_addr = hotonel (gethostbyname (host));

    sockfd = socket (PF_INET, SOCK_STREAM, 0);
    if(sd < 0)
    { printf ("\a");
    perror("Error creating socket");
    exit(-1);
    }

    flag = connect (sockfd, (struct sockaddr* )&server, sizeof (server));
    if (flag < 0)
    { printf ("\a");
    perror("Error connection");
    exit(-1);
    }
    return sd;
    }

  4. #4
    Concentrati più sul server, tanto per i client puoi usare netcat.
    Scusa ma qual'è la differenza tra client e agent ?

  5. #5
    la differenza è che il client invia e riceve informazioni dal server, mentre l'agent le invia solamente, comunque il mio problema consiste ne gestire simultaneamente più client e più agent!

  6. #6
    Quindi puoi trattare un agent come un client ?
    In fondo è un client che:
    -invia dati
    -chiude la connessione

    Comunque per gestire più client e agent puoi usare:
    -Fork
    -Thread


  7. #7
    Ok, ma se io non lo volessi fare con Fork Thread, come devo fare?perche non li so usare tanto bene! dovrei gestire tutto attraverso semafori

  8. #8
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,465
    No ... per trattare la comunicazione con piu' client e' fortemente consigliabile agire su piu' thread ...
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  9. #9
    Costruire un server del genere non è un'operazione semplicissima. Hai considerato la possibilità d'appoggiarti ad un server web +DB?

  10. #10
    Se volessi fare con i thread come sarebbe la struttura? poi dovrei usare le pip per far comunicare i thread? e c vuole un thread a connessione?

    raga se m potete aiutare a creare la struttura ve ne sarei eternamente grto!

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.