VB Inviare immagini tra applicazioni client server

Stato
Discussione chiusa ad ulteriori risposte.

edoslash

Utente Bronze
26 Luglio 2016
1
1
0
30
premetto che non sono un esperto di programmazione visual basic ma necessito di una procedura per inviare file tra applicazioni Client/server , funziona tutto ho creato la connessione ma quando voglio inviare un file ne invia soltanto 64KB cercando in internet ho trovato che devo inserire un contatore nel buffer ,per inviare immagine a pacchetti , non ci sono riuscito chi puo darmi una mano ???
il codice è il seguente per quanto riguarda l'invio del file

Dim bfile() As Byte = IO.File.ReadAllBytes("lol.docx")
flusso.Write(bfile, 0, bfile.Length)

mentre uso questo per la ricezione del file

Dim bfile(cliente.Available - 1) As Byte
flusso.Read(bfile, 0, bfile.Length)
IO.File.WriteAllBytes("lol.docx", bfile)


il file arriva ma soltanto 64KB
 
Potrei essere un ritardato, ma non dovresti dichiarare la risposta come array di byte? Il tuo codice:
Codice:
Dim bfile(cliente.Available - 1) As Byte
A:
Codice:
Dim bfile(cliente.Available - 1) As Byte()
Potresti provare Dim () come numero intero come Integer (), entrambi possono essere usati, dal momento che entrambi sono gli array. Cliente.Available è un numero intero, e un intero ha un valore massimo. La lunghezza massima di Int32 è di 2147483647 e questo non è il problema. Questo sito dovrebbe aiutarti: http://www.csharp-examples.net/socket-send-receive/.
 
Potrei essere un ritardato, ma non dovresti dichiarare la risposta come array di byte? Il tuo codice:
Codice:
Dim bfile(cliente.Available - 1) As Byte
A:
Codice:
Dim bfile(cliente.Available - 1) As Byte()
Potresti provare Dim () come numero intero come Integer (), entrambi possono essere usati, dal momento che entrambi sono gli array. Cliente.Available è un numero intero, e un intero ha un valore massimo. La lunghezza massima di Int32 è di 2147483647 e questo non è il problema. Questo sito dovrebbe aiutarti: http://www.csharp-examples.net/socket-send-receive/.
Sai come far sì che appena si apra il programma questo clicchi sul "Button1", così da far partire automaticamente il loop?
 
premetto che non sono un esperto di programmazione visual basic ma necessito di una procedura per inviare file tra applicazioni Client/server , funziona tutto ho creato la connessione ma quando voglio inviare un file ne invia soltanto 64KB cercando in internet ho trovato che devo inserire un contatore nel buffer ,per inviare immagine a pacchetti , non ci sono riuscito chi puo darmi una mano ???
il codice è il seguente per quanto riguarda l'invio del file

Dim bfile() As Byte = IO.File.ReadAllBytes("lol.docx")
flusso.Write(bfile, 0, bfile.Length)

mentre uso questo per la ricezione del file

Dim bfile(cliente.Available - 1) As Byte
flusso.Read(bfile, 0, bfile.Length)
IO.File.WriteAllBytes("lol.docx", bfile)


il file arriva ma soltanto 64KB
Memorizza l'immagine in un MemoryStream e restituisci la matrice, è un array di byte.
 
Il Socket puo` inviare massimo 64KB per volta, per cui devi spezzettare il file in parti quando lo invii, per poi ricomporlo quando arriva.
Se mi dici che componente stai usando per i Socket ti posso dare una mano :)
 
Stato
Discussione chiusa ad ulteriori risposte.