Oppure

Loading
Questo topic e' stato chiuso dal moderatore.
11/01/10 20:46
Darkos
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ì:
    Sub ScreenSaveProcess(ByVal DmRcvd As Integer)
        ProgressBar1.Value += (DmScrnSvd / DmScrn) * 100
        If ProgressBar1.Value = 100% Then
            FileClose()
        End If
    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
aaa
12/01/10 13:29
Il Totem
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).
aaa
12/01/10 14:24
Darkos
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?
aaa
12/01/10 14:52
Darkos
Ci sono riuscito in un altro modo.
Nel data arrival
            Dim RcvdData() As Byte = Nothing
            TCP.GetData(RcvdData)
            DmScrnSvd = RcvdData.Length * 8
            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
aaa
13/01/10 16:11
Il Totem
Ah ma tu non stai utilizzando classi .NET. Usi un componente COM, ma non dovresti.
aaa
14/01/10 20:16
Darkos
Si... in che senso classi .NET? esiste un altra modo? (magari migliore)
aaa
16/01/10 12:19
Il Totem
Ossia usare oggetto di tipo System.Net.Sockets.Socket o System.Net.TcpClient per assolvere ai compiti di AxMSWinsock.
devarticles.com/c/a/C-Sharp/Socket-Programming-in-C-Part-I/1/
aaa
16/01/10 14:16
Darkos
Grazie 1000, mi consigli di utilizzare quelle classi?
Cosa ha di più o di meno?
aaa