riseofapocalypse (Ex-Member)
Pro
Messaggi: 150
Iscritto: 08/07/2009
|
Traggo spunto dall'esempio di prima e aggiungo una cosa:
Codice sorgente - presumibilmente Delphi |
Il Client invia "file" Il Server invia "OK" Il Client invia il nome del file Il Server invia "OK" Il Client invia il numero dei Bytes del file Il Server invia "OK" e predispone un Array di lunghezza opportuna Il Client invia i Bytes del file Il Server invia "OK" e salva il file
|
Credo sia a posto
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da dedalux:
un esempio piccino piccino di come specificare la quantita di bytes? |
Scusa, non e' per non fare l'esempio (piccino o non piccino) ma cosa vuoi che ti dica?
Devi inviare la lunghezza del file, che so, il numero
1288389
prima di inviare i byte, magari utilizzando un numero fisso di cifre, esempio
00001288389
|
|
riseofapocalypse (Ex-Member)
Pro
Messaggi: 150
Iscritto: 08/07/2009
|
Non c'č bisogno di impostare un numero fisso di cifre, poichč se trasmetti il numero sotto forma di stringa e utilizzi un Array di Byte molto lungo (ad esempio di lunghezza server.ReceiveBufferSize), puoi fare direttamente System.Text.Encoding.ASCII.GetString(bytes).Replace(Chr(0), "") per regolarizzare la stringa
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da riseofapocalypse:
Non c'č bisogno di impostare un numero fisso di cifre, poichč se trasmetti il numero sotto forma di stringa e utilizzi un Array di Byte molto lungo (ad esempio di lunghezza server.ReceiveBufferSize), puoi fare direttamente System.Text.Encoding.ASCII.GetString(bytes).Replace(Chr(0), "") per regolarizzare la stringa |
Il numero fisso di cifre serve per capire quando finisce il numero e comincia il file ... a meno che non si usi un separatore fisso, ad esempio
12345#
se usi il # come separatore
oppure
00012345
se usi un numero fisso di cifre (8 in questo caso).
In alternativa, il valore puo' essere trasferito in binario, con un intero a 64 bit (facilmente identificabile e riconvertibile da chi riceve). |
|
riseofapocalypse (Ex-Member)
Pro
Messaggi: 150
Iscritto: 08/07/2009
|
Ma non c'č bisogno! Perchč il Client fra un invio e l'altro, aspetta l'"OK" del Server!
|
|
theprogrammer (Normal User)
Guru^2
Messaggi: 2509
Iscritto: 28/01/2009
|
Postato originariamente da riseofapocalypse:
Ma non c'č bisogno! Perchč il Client fra un invio e l'altro, aspetta l'"OK" del Server! |
Se utilizzi questa "regola", naturalmente, non c'e' bisogno, ma se non vuoi utilizzare l'OK (non e' necessario), trasmetti questa sequenza
FILE#12345678#...byte del file#CRC
e basta |
|
dedalux (Normal User)
Pro
Messaggi: 155
Iscritto: 14/02/2009
|
............
dunque cosa dovrei fare?
............
premettendo che non conosco la sintassi per specificare la lunghezza del file (anche se adx me la vado a vedere)
Ultima modifica effettuata da dedalux il 17/07/2009 alle 22:40 |
|
riseofapocalypse (Ex-Member)
Pro
Messaggi: 150
Iscritto: 08/07/2009
|
La sintassi la decidi tu! ci sono due vie: quella che ho detto io e quella che ha detto programmer, sono entrambe efficienti, la scelta devi farla tu!
|
|