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 - Sviluppare un software per la condivisione delle stampanti via WEB
Forum - C# / VB.NET - Sviluppare un software per la condivisione delle stampanti via WEB

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 10:22
Venerdì, 18/09/2009
Buongiorno a tutti.
Avrei bisogno di supporto nella realizzazione del progetto descritto in oggetto.

Non richiedo un progetto già sviluppato o che qualcuno lo faccia per me.
Tuttavia vorrei sapere, dai più esperti, se il metodo System.Net.Sockets può fare al mio caso.

Ho pensato che se gestisco un server di interscambio dati le stampanti condivise dal programmino client possono registrarsi sul server e chi autorizzato può da internet collegarsi al server di interscambio e inviare stampe.

Come vi sembra l'idea.
Non intendo sviluppare una VPN LAN to LAN, quindi non mi rispondete così.
grazie, Ciao.


"MOLTE COSE SONO DIFFICILI DA PROGETTARE SONO DIFFICILI DA REALIZZARE
MA C'E' QUALCUNO CHE PUO RIUSCIRE, PERCHE' SE PUOI SOGNARLO PUOI FARLO"
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 11:40
Venerdì, 18/09/2009
il modo più semplice per fare ciò e quello di inviare stringhe al server e un piccolissimo parsing per far capire al server se creare un nuovo documento e incollare le stringhe una dopo l'altra, chiudere il documento oppure salvarlo.
del tipo:

newdoc->  Filename.txt o rtf qualsiasi formato tu voglia.
appendText->Stringa
savedoc->Filename.txt
stamp->Filename.txt

questa e solo una piccolissima ipotesi, ovviamente il codice può essere molto più articolato o strutturato in modo migliore.


PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 12:07
Venerdì, 18/09/2009
E' una buona idea. Ci lavoro.


"MOLTE COSE SONO DIFFICILI DA PROGETTARE SONO DIFFICILI DA REALIZZARE
MA C'E' QUALCUNO CHE PUO RIUSCIRE, PERCHE' SE PUOI SOGNARLO PUOI FARLO"
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:10
Venerdì, 18/09/2009
:k: Buon lavoro.


:ot:
Complimenti per la tua firma mi ha molto colpito
mi rispecchia molto :)


PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 12:16
Venerdì, 18/09/2009
Grazie, per la firma.
Ok mi piace l'idea che mi hai dato.

Tuttavia il primo problema è lato client1 (quello che invia le stampe) per intenderci.
Devo creare una stampante virtuale ... come si crea ?

Ciao, grazie.

PS: Complimenti per i siti.

Ultima modifica effettuata da hemmaus il 18/09/2009 alle 12:18


"MOLTE COSE SONO DIFFICILI DA PROGETTARE SONO DIFFICILI DA REALIZZARE
MA C'E' QUALCUNO CHE PUO RIUSCIRE, PERCHE' SE PUOI SOGNARLO PUOI FARLO"
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 12:55
Venerdì, 18/09/2009
grazie per i complienti :).

Ritornando al client e abbastanza semplice da fare come cosa.

il server dev'essere un interprete di tutto.
diciamo una postazione da dove riceve i comandi e ne esegue le azioni.

non c'è bisogno di creare una stampa virtuale, perchè il server stesso genera la stampa.

se ho capito bene intendevi che gl'altri client inviavano stampe al server e lui le stampava.

Testo quotato


collegarsi al server di interscambio e inviare stampe



come dicevo il trucchetto di prima

ti basta inviare da client a server un qualcosa del genere


string intestazione = "inteszione di stampa";
string documento = "";
string pie = "";

al server invii tipo

"newdoc->Test.txt";

ricevuta la stringa
esegui un check

if stringaricevuta.startwhit("newdoc->");

esegui un substring sulla stringa in modo che ti elimina il comando newdoc-> e ti riname solo il nome del file

usi lo stream per creare il file e imposti un bool su true per sapere se è stato creato un file

stessa cosa la fai con le altre variabili magari ti personalizzi anche i comandi
substring sul comando e recuperi la stringa.

arrivato al comando savedoc->Filename

gli fai salvare il file con tutte le stringhe recuperate dallo streaming

ed al comando stamp->Filename.txt  il server esegue la stampa
ovviamente il codice della stampa devi scriverlo sul server non dal client.

spero di averti illuminato con quesa idea.

ti ho fatto un esempio in vb.net

per i comandi ti consiglio di impostare a tutti un numero di caratteri uguali.
così ti faciliti di più il parsing

Codice sorgente - presumibilmente VB.NET

  1. '--------------------------------------------------------------
  2.         'messaggio di errore
  3.         Try
  4.  
  5.             Dim par = parametro.Substring(0, 5)
  6.             Dim togli = parametro.Length - 5
  7.             Dim param = parametro.Substring(5, togli)
  8.  
  9.  
  10.             If par = "err->" Then
  11.                 Console.ForegroundColor = ConsoleColor.White
  12.                 Console.WriteLine("Errore:  ")
  13.                 Console.ForegroundColor = ConsoleColor.Red
  14.                 Console.Write(param)
  15.                 Console.WriteLine("")
  16.                 Console.ForegroundColor = ConsoleColor.White
  17.             End If
  18.         Catch
  19.         End Try


Ultima modifica effettuata da Thejuster il 18/09/2009 alle 13:08


PM Quote
Avatar
hemmaus (Normal User)
Pro


Messaggi: 96
Iscritto: 15/07/2009

Segnala al moderatore
Postato alle 16:15
Venerdì, 18/09/2009
Sei un grande e ti ringrazio per la pronta risposta.
Purtroppo mi sono spiegato male.

Allora, l'intenzione è questa:

Client posizionato nel luogo A
Client posizionato nel luogo B

Server sempre in ascolto posizionato nel luogo X (Porte aperte,IP fisso etc. etc.)

Il client A ha le sue stampanti e le condivide.
Il client B ha le sue stampanti e le condivide.

Il client A vuole stampare sulle stampanti condivise di B e viceversa.
Non intendo fare una VPN LAN to LAN perchè non sarebbe standard e non servirebbe il programma. La VPN LAN to LAN funziona quasi d'appertutto non funziona su fastweb ad esempio. Mentre una comunicazione tramite socket sulla 80 mi scambia i dati.

Mio problema: Come creo una stampante virtuale, in modo che l'UTONTO A utilizzi la stampante virtuale per inviare stampe sulla stampante di B ??

OK?
Grazie.

Ultima modifica effettuata da hemmaus il 18/09/2009 alle 16:16


"MOLTE COSE SONO DIFFICILI DA PROGETTARE SONO DIFFICILI DA REALIZZARE
MA C'E' QUALCUNO CHE PUO RIUSCIRE, PERCHE' SE PUOI SOGNARLO PUOI FARLO"
PM Quote
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1845
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 17:22
Venerdì, 18/09/2009
Beh abbastanza semplice allora.

Devi fare in modo che la postazione X sia un cervellone tipo
un luogo in cui i dati vengono trasmessi e ritrasmessi fra di loro.
utilizzando sempre l’esempio dei comandi che ti ho mostrato prima puoi fare questo.

1) La postazione A vuole eseguire una stampa sulla postazione B

Stesso discorso di prima con l’invio di stringhe testo ecc. ecc.
solo che oltre ad inviare il testo aggiungi anche un ID per specificare a quale postazione devono arrivare i dati

Quindi ti servono 3 Server

1) Cervellone Postazione X
2) Server Scambio dati A
3) Server Scambio dati B

quindi

cliente / Server  A

newdoc.>Preventivo.txt  ( crea nuovo file )
appendText->Spett.Le bla bla bla  (aggiungi al file questa stringa )
savefile->Preventivo.txt ( salva il tutto in questo file)
stamp->B,Preventivo.txt  (invia stampa alla postazione B)


Cervellone X
apre il file preventivo.txt e recupera tutto il testo
si collega al cliente B e rimanda tutto al server della postazione B

Cliente /  Server  B
tramide un timer esegue un check per verificare se c’è una nuova stampa da eseguire
i dati ricevuti dal cervellone al server B gli dicono di salvare il nuovo file, inserendo in un’altro file tipo
NewElement che contiene il file da stampare. se il server B nel file NewElement trova un true o il nome del file da stampare
avvia direttamente la stampa senza dire nulla al cliente B

così dovrebbe funzionare.


PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 18:55
Venerdì, 18/09/2009
Forse non hai capito la domanda. Lui sta chiedendo come creare una stampante virtuale e non come realizzare il modello di scambio dati (che presuppongo abbia già in mente).
Link utile:
http://www.printdistributor.com/forum/post/121
e:
http://www.google.it/search?q=c%23+virtual+printer&sourcei ...


"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 Quote
Pagine: [ 1 2 ] Precedente | Prossimo