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 - Winsock e Trasferimento Immagini (VB2010)
Forum - C# / VB.NET - Winsock e Trasferimento Immagini (VB2010) - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 10:41
Mercoledì, 18/08/2010
Sezione sbagliata. Nonostante tu stia usando un IDE per .NET, TUTTO il codice che hai usato è VB6, quindi ti consiglio di chiedere nella sezione apposita, dove ti sapranno aiutare di più.

PM Quote
Avatar
VBasicPC (Normal User)
Newbie


Messaggi: 8
Iscritto: 17/08/2010

Segnala al moderatore
Postato alle 20:36
Mercoledì, 18/08/2010
Credo che Totem abbia ragione.


Comunque mi ci sono messo su e sono riuscito ad elaborare un codice che funziona, anche se il trasferimento è un pò lento, ma ci lavorerò su per far si di non inviare un byte alla volta ;)

Dato che potrebbe servire a qualcuno che in futuro può avere il mio stesso problema, ecco il codice:

Client che invia:

Codice sorgente - presumibilmente VB.NET

  1. Private Function invia()
  2.         Const Immagine As String = "C:\Img1.jpg"
  3.         Dim N As Integer
  4.         Dim c As Long
  5.         Dim P As Byte
  6.         N = FreeFile()
  7.         FileOpen(N, Immagine, OpenMode.Binary)
  8.         c = 0
  9.         While Not c = LOF(1)
  10.             c = c + 1
  11.             FileGet(N, P, c)
  12.             Winsock2.SendData(P)
  13.             Application.DoEvents()
  14.         End While
  15.         FileClose(N)
  16.         Winsock2.Close()
  17.         MsgBox("File Inviato")
  18.     End Function



Server che riceve:

Codice sorgente - presumibilmente VB.NET

  1. Private Sub Winsock1_CloseEvent(ByVal sender As Object, ByVal e As System.EventArgs) Handles Winsock1.CloseEvent
  2.         FileClose(1)
  3.         PictureBox1.Image = PictureBox1.Image.FromFile("C:\Img245.png")
  4.     End Sub
  5.  
  6.     Private Sub Winsock1_ConnectionRequest(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_ConnectionRequestEvent) Handles Winsock1.ConnectionRequest
  7.         Winsock1.Close()
  8.         Winsock1.Accept(e.requestID)
  9.         FileOpen(1, "C:\Img245.jpg", OpenMode.Binary)
  10.     End Sub
  11.  
  12.     Private Sub Winsock1_DataArrival(ByVal sender As Object, ByVal e As AxMSWinsockLib.DMSWinsockControlEvents_DataArrivalEvent) Handles Winsock1.DataArrival
  13.         Dim immagine() As Byte
  14.         Winsock1.GetData(immagine)
  15.         FilePut(1, immagine)
  16.     End Sub


Ultima modifica effettuata da VBasicPC il 18/08/2010 alle 20:38
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 22:08
Mercoledì, 18/08/2010
guarda che era esattamente quello che intendevo :)

la modifica che devi fare è fare un solo senddata di tutti i dati dell'immagine, il datarrival va bene :)

PM Quote
Avatar
VBasicPC (Normal User)
Newbie


Messaggi: 8
Iscritto: 17/08/2010

Segnala al moderatore
Postato alle 13:58
Giovedì, 19/08/2010
Bhe, il problema è che l' immagine intera è troppo grande da inviare, cioè non arriva completamente, quindi stavo pensando di creare un array di byte che divide i bytes presi dall' immagine in 4 parti, e dopodichè invia parte dopo parte. Dici che è una buona idea? ;)

Ultima modifica effettuata da VBasicPC il 19/08/2010 alle 13:58
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 15:16
Giovedì, 19/08/2010
Testo quotato

Postato originariamente da VBasicPC:

Bhe, il problema è che l' immagine intera è troppo grande da inviare, cioè non arriva completamente, quindi stavo pensando di creare un array di byte che divide i bytes presi dall' immagine in 4 parti, e dopodichè invia parte dopo parte. Dici che è una buona idea? ;)



si chiama buffering, è una buona idea (anche se non capisco come faccia a non funzionare così com'è)

PM Quote
Avatar
VBasicPC (Normal User)
Newbie


Messaggi: 8
Iscritto: 17/08/2010

Segnala al moderatore
Postato alle 16:31
Giovedì, 19/08/2010
Così come è funziona; il problema che mi pongo è che aspetto troppo tempo anche per soli 20 kb :D

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo