Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.NET] Client/Server - Inviare file
Forum - C# / VB.NET - [VB.NET] Client/Server - Inviare file - Pagina 2

Pagine: [ 1 2 3 4 ] Precedente | Prossimo
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 22:03
Venerdė, 17/07/2009
Traggo spunto dall'esempio di prima e aggiungo una cosa:
Codice sorgente - presumibilmente Delphi

  1. Il Client invia "file"
  2. Il Server invia "OK"
  3. Il Client invia il nome del file
  4. Il Server invia "OK"
  5. Il Client invia il numero dei Bytes del file
  6. Il Server invia "OK" e predispone un Array di lunghezza opportuna
  7. Il Client invia i Bytes del file
  8. Il Server invia "OK" e salva il file


Credo sia a posto :k:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:03
Venerdė, 17/07/2009
Testo quotato

Postato originariamente da dedalux:

un esempio piccino piccino di come specificare la quantita di bytes? :rotfl:



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

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 22:10
Venerdė, 17/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

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:17
Venerdė, 17/07/2009
Testo quotato

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).

PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 22:19
Venerdė, 17/07/2009
Ma non c'č bisogno! Perchč il Client fra un invio e l'altro, aspetta l'"OK" del Server! :k:

PM Quote
Avatar
theprogrammer (Normal User)
Guru^2


Messaggi: 2509
Iscritto: 28/01/2009

Segnala al moderatore
Postato alle 22:23
Venerdė, 17/07/2009
Testo quotato

Postato originariamente da riseofapocalypse:

Ma non c'č bisogno! Perchč il Client fra un invio e l'altro, aspetta l'"OK" del Server! :k:



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

PM Quote
Avatar
dedalux (Normal User)
Pro


Messaggi: 155
Iscritto: 14/02/2009

Segnala al moderatore
Postato alle 22:29
Venerdė, 17/07/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
PM Quote
Avatar
riseofapocalypse (Ex-Member)
Pro


Messaggi: 150
Iscritto: 08/07/2009

Segnala al moderatore
Postato alle 10:30
Sabato, 18/07/2009
La sintassi la decidi tu! :rotfl: ci sono due vie: quella che ho detto io e quella che ha detto programmer, sono entrambe efficienti, la scelta devi farla tu! :k:

PM Quote
Pagine: [ 1 2 3 4 ] Precedente | Prossimo