[vb.net] problema programma Server MultiThreaded

giovedì 15 aprile 2010 - 17.44

nala Profilo | Newbie

Ciao a tutti!!

Il programma che sto realizzando si mette in ascolto sulla porta 515 ed attende la ricezione dei dati i quali vengono inviati da una stampante di tipo postscript (la quale si collega alla porta 515). una volta ricevuti li converte in un file .pdf.

ho un problema... quando i file inviati sn un pò pesanti (circa 2 mb) il programma è molto lento ed i dati non arrivano correttamente...

Vi posto il codice... riuscite a capire qual'è il problema??
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

kataklisma Profilo | Senior Member

>Ciao a tutti!!
Ciao!

>Il programma che sto realizzando si mette in ascolto sulla porta
>515 ed attende la ricezione dei dati i quali vengono inviati
>da una stampante di tipo postscript (la quale si collega alla
>porta 515). una volta ricevuti li converte in un file .pdf.
>
>ho un problema... quando i file inviati sn un pò pesanti (circa
>2 mb) il programma è molto lento ed i dati non arrivano correttamente...
>
>Vi posto il codice... riuscite a capire qual'è il problema??
>...

Purtroppo il problema è piu complicato di quello che sembra, immagina di camminare per 20 km su un sentiero tortuoso con una brocca colma d'acqua in mano, prima o poi qualche goccia esce dal vaso, stessa cosa per il tuo file da 2 mega, prima o poi qualche byte viene perso, è per questo motivo che applicazioni client server vecchio stile (passaggio di byte tramite socket, come stai facendo tu) sono un po ostiche e non alla portata di tutti.

Il consiglio che ti posso dare e di creare un'applicazione che risiede su un computer collegato alla stampante che gestisca i dati e li mandi tramite servizio WCF, ad esempio, alla tua applicazione, una piccola architettura client server con esposizione di servizi che ti permette di venir meno agli innumerevoli problemi che socket e byte danno.

Se devi continuare seguendo la linea dura ti consiglio di armarti di pazienza e scrivere un bel po di codice che gestisca il controllo sui dati inviati e ricevuti, un protocollo di comunicazione...etc...e al giorno d'oggi, con le tecnologie messe a disposizione non so se il gioco vale la candela.

Ciao ;)
------------------------------------------
Ignazio Catanzaro

http://blogs.dotnethell.it/swdev/
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-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5