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

    [c++] interrompere funzione recv()

    Buongiorno,
    ho scritto due programmi, client e server e li ho predisposti affinché si possano scambiare file tra loro.
    L'algoritmo è così composto:
    1) il client sceglie il file da inviare
    2) lo legge carattere per carattere inviando un carattere alla volta al server: send(client, buffer, 1, NULL); (buffer è un char buffer[1])
    3) il server apre un file, riceve ogni carattere che il client gli invia: recv(client, buffer, 1, NULL); e scrive il carattere all'interno del buffer dentro il file.
    4) ripete l'operazione, ma il problema è che non sa quando terminare recv(), ovvero quando il file è stato inviato tutto.

    come posso fare a far capire al server quando il client ha terminato di inviargli dati?
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    una prima possibilità può essere questa: come prima cosa il client invia al server il numero di caratteri dai quali è composto il file. Quindi inizia l'invio dei caratteri veri e propri e il server li conta.


  3. #3
    Ciao, grazie per la tempestiva risposta.
    Sì, potrei ottenere la grandezza del file e poi fare i calcoli. Penso che ci sia qualche metodo della classe File che ottenga la grandezza del file. Faccio sapere se funzia.

    Grazie ancora, ciao
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

  4. #4
    Grazie mille, ha funzionato ^^ ora mi rimane solo un dubbio che però non ha a che fare con questa discussione, quindi ne apro un'altra
    tutto si può fare, bisogna solo volerlo
    http://italybrain.altervista.org/

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.