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


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


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
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?


Darkos - Attilio
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


Darkos - Attilio
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
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)


Darkos - Attilio
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- ...


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
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?


Darkos - Attilio
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.


"Infelici sono quelli che hanno tanto cervello da vedere la loro stupidità."
(Fligende Blatter)

"Dubitare di se stessi è il primo segno d'intelligenza."
(Ugo Ojetti)
PM
Pagine: [ 1 2 ] Precedente | Prossimo