Invio immagini tramite Winsock

sabato 23 agosto 2008 - 12.19

Roberto82 Profilo | Newbie

Salve a tutti, sono nuovo nel forum e come tutti i "nuovi" ho subito una domanda da porVi.
Ho scritto un piccolo programmino Client-Server in VB6 ed ora ho la necessità di inviare
immagini dal programma Server verso il Client senza dover salvare quest'ultima su disco
prima di essere spedita poichè dovendo inserire tutto il codice all'interno di un Timer
se vado a salvare l'immagine e poi a spedirla il computer si inchioda!

La mia Domanda è questa: "Esiste un sistema per inviare l'immagine di un controllo IMAGE
(O QUALSIASI ALTRO CONTROLLO) attraverso l'istruzione Winsock.SendData ???"

NB: Avendo realizzato l'applicazione esclusivamente utilizzando le API di Windows vorrei,
se possibile evitare OCX o altre librerie esterne.

Grazie Anticipatamente
Roberto

Dainesi Profilo | Senior Member

Fammi capire meglio ... tu vorresti salvare un immagine in memoria volatile del Server su disco fisso del Client ? Come se i dischi del Client fossero una condivisione di rete ?

Roberto82 Profilo | Newbie

Mi spiego meglio:
Sto realizzando un'applicazione di assistenza remota e ho necessità di inviare al server le immagini dello schermo del client (catturate con un printScreen eseguito da API) essendo però la funzione all'interno di un timer che cattura immagini ogni millisecondo, se salvo l'immagine su disco e poi la invio al server il sistema si inchioda! dovrei poter riuscire ad inviare l'immagine catturata senza salvarla su disco.

Grazie Mille!
Roberto

Dainesi Profilo | Senior Member

Se è quindi dal Client al Server puoi utilizzare la clipboard per salvare l'immagine sul sito FTP del Server il quale accetterà file solo da Client in grado di autenticarsi (e l'autentica la fa il tuo programma residente sul client ...).

Sul server deve essere in funzione IIS e attivo il servizio FTP con cartella dedicata ad ospitare i file in arrivo.

Roberto82 Profilo | Newbie

No scusami, quando dicevo Client - Server intendevo comunque 2 programmi da me scritti in vb6 dove il client dovrebbe inviare costantemente immagini catturate simulando il PrintScreen (che salverà l'immagine nella clipboard) al server. Precedentemente avevo ovviato al problema seguendo questa procedura:
PROGRAMMA CLIENT:

- Simulazione PrintScreen
- Salvataggio dell'immagine dalla Clipboard su File (.bmp)
- Invio del file (Formato Binario) dal client al server, tramite Winsock

PROGRAMMA SERVER

- Ricezione del file spedito dal Client
- salvataggio dell'immagine su file (.bmp)
- Caricamento dell'immagine in un controllo "Image"

Questo metodo funzionava mail problema stava nel fatto che questa procedura veniva eseguita all'interno di un timer con intervallo settato ad 1 mSec, questo comportava troppi salvataggi su file e quindi si inchiodava tutto.
Ciò che vorrei riuscire a fare è inviare, sempre tramite il controllo Winsock, immagini direttamente dalla clipboard senza dover prima salvare su file l'immagine che ho catturato con la simulazione del printScreen sul programma Client.

Grazie ancora del tuo tempo!
Roberto

luigidibiasi Profilo | Guru

Ciao,

non vorrei sparare cavolate non usando + vb6 ma usando clipboard.getData non riesci a ricavarti il binario dell'immagine e spedirlo direttamente?

Oppure non puoi usare un thread separato magari con un intervallo più lungo di 1ms x gestirti quella procedura?
Luigi Di Biasi

Roberto82 Profilo | Newbie

Ho provato a ricavare il bnario dell'immagine ma non so se sono io che sbaglio oppure vb6 che non lo permette poichè quando uso il metodo GetData e lo memorizzo in una variabile, il valore che ottengo è un numero tipo: -85296825. non so come caricare nel controllo picture o image questo numero.

SE hai novità sono sempre gradite!

Grazie mille!

Roberto
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5