Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    4

    programmazione socket

    ciao a tutti!qualcuno mi sa svolgere questa socket in c...ve ne sarei molto grata
    la socket è questa:
    Si realizzi un'applicazione Client/Server che utilizzi le socket Windows e in cui un Client richiede al Server di ricercare una stringa (stringa) all'interno di un file (nomeFile). In particolare:
    - il Client riceve da tastiera stringa e nomeFile e invia al server il nome del file nomeFìle e il contenuto del file stesso, all'interno del quale il Server ricerca la stringa siringa.
    - Il risultato dell'operazione di ricerca ("stringa è stata trovata/non è stata trovata in NomeFile") deve essere messo in un file chiamato ancora nomeFìle ma che si deve trovare all'interno della directory .../tmp (sotto-directory della directory corrente).
    - Il server deve evitare di sovrascrivere i file: se il file nomeFile non è già presente all'interno di .../tmp, effettua la ricerca, altrimenti no.
    Al termine dell'operazione richiesta, il Server manda al Client il numero di ricerche svolte con successo (numero di file in .../tmp) fino a quel momento (cioè verso qualunque Client dall'inizio delle operazioni del Server).



    rispondetemi...vi prego...ho l'esame a breve
    buon natale a tutti

  2. #2
    ciao a tutti!qualcuno mi sa svolgere questa socket in c...ve ne sarei molto grata
    la socket è questa:
    Si realizzi un'applicazione Client/Server <...>

    rispondetemi...vi prego...ho l'esame a breve
    Mi dispiace dirtelo ma dalla domanda che hai posto si deduce che non sai neanche cosa sia "una socket", prova a studiare un po', proponi una soluzione non funzionante POI ci lavoriamo insieme.
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    4

    prima di parlare...

    ...prima di parlare dovresti sapere...
    cmq sto studiando + ke mai e non ho scrupoli di coscienza nè tantomeno mi tange la tua offesa..
    cmq se vuoi proprio saperlo la sto facendo ma vorrei una conferma da qualcuno ke ne sa + di me...forse so io + di te visto ke anzicchè darmi una soluzione mi dai una critica...
    ciao

  4. #4
    Nessuna offesa e nessuna critica, la domanda denota scarsa conoscenza dell'argomento. Se stai lavorando alla soluzione postala quanto prima e ti diamo volentieri una mano (come ho detto anche nel messaggio precedente).
    "Se riesci a passare un pomeriggio assolutamente inutile in modo assolutamente inutile, hai imparato a vivere."

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    4
    ok...allora spero di risolverlo al + presto

  6. #6
    Utente di HTML.it
    Registrato dal
    Dec 2007
    Messaggi
    4
    Allora come avevo detto su questa socket ci sto lavorando e fino ad ora ho fatto questo ma ho alcuni dubbi
    #include <stdio.h>
    #include <fcntl.h>
    #include <string.h>
    #include <stdlib.h>
    #include <sys/types.h>
    #include <sys/socket.h>
    #include <syslog.h>
    #include <netinet/in.h>
    #include <netdb.h>

    #define BUFFERSIZE 1024

    main(int argc,char *argv[] )
    {
    //Dichiarazioni

    //Buffer della socket socket
    char filebuffer[BUFFERSIZE];
    //Descrittore socket
    int sd;
    //Esito della connessione
    int psd;
    //Numero di bytes rivevuti
    int nload;
    //Struct dell'indirizzo del server
    struct sockaddr_in server;
    //Struct di tipo hostent (per la conversione di indirizzi) del client
    struct hostent *host;

    //Controllo dell'interfaccia del client
    if(argc!=4)
    {
    printf("Non sono stati inserititi tutti i parametri");
    printf("L'interfaccia è: remote_sort nodoserver file stringa");
    exit(1);
    }

    memset ((char *)&server, 0, sizeof(struct sockaddr_in));/* clear sockaddr structure */

    //Inizio connessione
    host = gethostbyname(argv[1]);
    server.sin_family = AF_INET;
    server.sin_addr.s_addr=((struct in_addr*)(host->h_addr))->s_addr;
    server.sin_port = 12347;

    //Creazione socket
    sd=socket(AF_INET, SOCK_STREAM, 0);
    if(sd<0)
    {
    perror("apertura socket");
    exit(1);
    }
    else printf("\nClient: creata la socket sd=%d\n", sd);

    //Connessione al server
    psd=connect(sd,(struct sockaddr *) &server,sizeof(struct sockaddr));
    if(psd<0)
    {
    perror("Errore in connect");
    exit(1);
    }
    else printf("Client: connect ok\n");


    //Caricamento in filebuffer del contenuto del file
    FILE *file = fopen(argv[2],"r");//"r"lettura mode
    if (file==NULL) return 0;
    strcpy(filebuffer,"");//copia"" in filebuffer
    fflush(stdin);//su uno stream di output provoca la scrittura di dati bufferizzati
    ma non ancora scritti su uno stream di input,l'effeto è indefinito
    rewind(file);
    fscanf(file,"%s",&filebuffer);
    printf("\nstringaletta dal File: %s\n",filebuffer);

    //Invio di filebuffer
    send(sd,filebuffer,BUFFERSIZE,0);
    printf("Stringa inviata, aspetto risposta\n\n");

    ***//Ricezione della stringa in filebuffer
    nload = recv(sd,filebuffer,BUFFERSIZE, 0);
    printf("Stringa ricevuta: %s\n",filebuffer);

    //Salvataggio del file
    FILE *fileord = fopen(argv[3],"w");
    fprintf(fileord,"%s",filebuffer);
    printf("File Salvato\n\n");
    fclose(file);
    fclose(fileord);
    close(sd);
    exit(0);
    }
    ma ho molti dubbi...questo è solo il client...il server poi mi dà ancora + preoccupazioni
    aspetto notizie

    }

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.