Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - VisualBasic.Net - BytesRecived con controllo WinSock
Forum - C# / VB.NET - VisualBasic.Net - BytesRecived con controllo WinSock

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
Darkos (Normal User)
Newbie


Messaggi: 19
Iscritto: 11/01/2010

Segnala al moderatore
Postato alle 21:46
Lunedì, 11/01/2010
Questo topic è stato chiuso dal moderatore

Salve a tutti! Sono nuovo del sito e da un po' stò vedendo le vostre guide e tutorial con le quali mi sono trovato molto bene.. però non ho trovato niente che mi potesse essere utile in questo caso.

Sto realizzando un programma per il controllo remoto Client/Server con Vb.Net attraverso il WinSock (di Windows).
Sono arrivato al punto dello schermo.. visto la difficoltà dello streaming dello schermo dal Server al Client sto utilizzando uno screen da inviare byte per byte
Fin quì tutto ok però vorrei realizzare una barra del progresso più o meno così:
Codice sorgente - presumibilmente VB.NET

  1. Sub ScreenSaveProcess(ByVal DmRcvd As Integer)
  2.         ProgressBar1.Value += (DmScrnSvd / DmScrn) * 100
  3.         If ProgressBar1.Value = 100% Then
  4.             FileClose()
  5.         End If
  6.     End Sub


In modo tale da incrementare la barra del progresso con questa funzione all'arrivo dei bytes contenuti nel file.
La dimensione totale del file ce l'ho.. ma non so come posso trovarmi le dimensioni, i bytes ricevuti ad ogni evento del DataArrival da passare poi alla funzione.

Spero di essermi spiegato bene, grazie in anticipo :)

Darkos

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 14:29
Martedì, 12/01/2010
Mi sembra sia la proprietà Available dell'oggetto TcpClient che usi per la connessione. Restituisce di volta in volta quanti bytes sono pronti per la lettura (la somma di tutti dovrebbe dare la dimensione del file).

PM
Avatar
Darkos (Normal User)
Newbie


Messaggi: 19
Iscritto: 11/01/2010

Segnala al moderatore
Postato alle 15:24
Martedì, 12/01/2010
Grazie ma purtroppo non esiste nessuna proprietà Available :S
('Available' non è un membro di 'AxMSWinsockLib.AxWinsock')

Ho provato anche assegnando ad una variabile il valore TcpClient.BytesReceived ma mi da 0 ad ogni arrivo del data

Come si fa?

PM
Avatar
Darkos (Normal User)
Newbie


Messaggi: 19
Iscritto: 11/01/2010

Segnala al moderatore
Postato alle 15:52
Martedì, 12/01/2010
Ci sono riuscito in un altro modo.
Nel data arrival
Codice sorgente - presumibilmente VB.NET

  1. Dim RcvdData() As Byte = Nothing
  2.             TCP.GetData(RcvdData)
  3.             DmScrnSvd = RcvdData.Length * 8
  4.             ScreenSaveProcess(DmScrnSvd)


Funziona però potrebbe essere anche una concidenza.. che ne pensate? :-|

p.s. la variabile che invio dal server è una variabile sempre di tipo byte a matrice

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:11
Mercoledì, 13/01/2010
Ah ma tu non stai utilizzando classi .NET. Usi un componente COM, ma non dovresti.

PM
Avatar
Darkos (Normal User)
Newbie


Messaggi: 19
Iscritto: 11/01/2010

Segnala al moderatore
Postato alle 21:16
Giovedì, 14/01/2010
Si... in che senso classi .NET? esiste un altra modo? (magari migliore)

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 13:19
Sabato, 16/01/2010
Ossia usare oggetto di tipo System.Net.Sockets.Socket o System.Net.TcpClient per assolvere ai compiti di AxMSWinsock.
http://www.devarticles.com/c/a/C-Sharp/Socket-Programming- ...

PM
Avatar
Darkos (Normal User)
Newbie


Messaggi: 19
Iscritto: 11/01/2010

Segnala al moderatore
Postato alle 15:16
Sabato, 16/01/2010
Grazie 1000, mi consigli di utilizzare quelle classi?
Cosa ha di più o di meno?

PM
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 16:55
Lunedì, 18/01/2010
Di più: sono componenti gestiti, sicuri, sono CLS-Compliant e rispettano lo spirito .NET;
Di meno: non supportano gli eventi.

Comunque se programmi in .NET dovresti usare quello che il .NET offre, quando possibile.

PM
Pagine: [ 1 2 ] Precedente | Prossimo