Newsgroup: it.comp.lang.visual-basic
Titolo: [?] connessione winsock a server news...

Sto scrivendo un programmino per gestire le news, collegandomi a vari server
news.
Utilizzo il controllo winsock del Vb6.
Il mio problema è questo: quando sono a scaricare la lista dei newsgroup,
nel caso di server con molti newsgroup (es. galactica), dopo un tot di
minuti il server stacca la connessione, anche se effettivamente non è ancora
finito il download dei newsgroup...
Come posso fare per evitare questa interruzione? Devo comunicare al server
che (mentre lui continua ad inviarmi i dati) sono ancora collegato e sto
ricevendo ? Cosa devo inviare per fargli capire che sono sempre on line???
Grazie 1000 anticipate.

Noooooooooooooooooooo!!!!
Lo stavo iniziando anch'io!!!
Se fai qualcosa poi lo posti sul SitoComune??
        Ciao
                    Allanon

 Se fai qualcosa poi lo posti sul SitoComune??
Se è per questo lo sto facendo anch'io. Anzi, l'ho quasi finito.
A proposito, non gli ho ancora dato un nome. Qualcuno mi aiuta?

 Se è per questo lo sto facendo anch'io.
Anche io, e lo sto gia' usando :-). Visto il poco tempo che ho, mi
piacerebbe trovare qualche collaboratore (alla pari)... se qualcuno 
fosse  interessato, magari, puo' scrivermi in mail (sostituendo nomail
con il mio nick), dato che su iclvb ho decine di filtri e comunque non
scarico piu' di 100 msg a volta...
L'idea e' di avere un mailer/newsreader che sia veloce e un po' diverso
sia da OE (lento e insicuro) e da Agent (anni fa pero'...)
-- 
 Pastrano

 sia da OE (lento e insicuro) e da Agent (anni fa pero'...)
Quello che sto realizzando io invece è un newsreader (no mailreader) che
assomigli a OE (di cui mi piace l'interfaccia) ma che sia più veloce.
Per il momento l'obbiettivo è parzialmente fallito.
Infatti ci sono minor perdite di tempo nello scaricare i messaggi (non serve
fare più volte la sincronizzazione perchè perde i messaggi) ma è molto lento
nel caricare dal db l'elenco dei messaggi.

 ha scritto nel messaggio
news:Wg3w6.1153$fO3....@news.infostrada.it...


 ma è molto lento nel caricare dal db l'elenco dei messaggi.
L'elenco da un db? Io ho sempre usato file di testo per queste cose,
magari prima scrivi l'elenco, quando lo rileggi, se fai cose tipo tenere
tutti i dati (non il corpo del messaggio) in un array, puoi salvarlo come
testo, per esempio una riga un messaggio (titolo-autore-etc etc-dove sta
il messaggio), o anche binario, e puoi comunque farci le ricerche...
-- 
 Pastrano

 Forse bisognerebbe evitare i tradizionali database relazionali
Di sicuro, io ho provato a caricare grosse liste di messaggi, e un 5000
in 15 secondi si dovrebbero caricare facilmente, gia' senza usare indici,
ma solo con una buona serie di if e instr. Ovviamente, dipende da come uno
li registra, e da quanto tempo e' disposto a perderci: se fai un indice
per 20000 messaggi, per esempio, ti scoccerebbe doverlo rifare spesso
perche' qualche proc lo sputtana... la cosa piu' semplice era registrarli
in un formato dove ci fosse un separatore "sicuro", e scriverli
sequenzialmente, magari una cosa tipo
ssep=chr(240)+chr$(241)
write #1, ssep
write #1, sgruppo & ssep & stitolo & eccetera eccetera
write #1, tutto il messaggio inclusi gli header
e rileggendolo, basta leggere tutto, facendo solo un controllo per vedere
se cio' che si legge e' ssep, nel qual caso si legge la riga dopo e si fa
uno split per avere i dati per un array. Il testo del messaggio,
ovviamente, si legge mantenendo una posizione di inizio e fine sul file
per ripescarlo solo se si deve leggere, e anche le posizioni le metto
nell'array.
Tenendo le posizioni e' anche facile tenere qualche marcatore nella
seconda riga, per riscriverlo, tipo letto, cancellato, etc etc.
-- 
 Pastrano

 Lanciamo una collaborazione?
Hai scaricato poi hamster?
-- 
 Pastrano

Dunque... ho scaricato Hamster....
E sarò molto sincero nel dirti che non ho capito molto per quel poco che
l'ho guardato...
Però...
Boh...
Per quello che riguarda gli archivi penso che più che ordinarli per data non
si possa fare, però sarebbe bello dare la possibilità di salvare delle
"parole chiave" per ogni messaggio e creare degli indici a parte per
quelle...
            Ciao
                    Allanon


Ci avevo già pensato, ma ho preferito usare un db per questi motivi.
1. Utilizzando file binari perdi la possibilità, o diventa molto difficile,
editare a mano i dati, cosa che invece mi è servita molto per fare il debug
del programma.
2. Usando un db è più facile accedere ai dati anche con altri programmi.
3. Non usando i db perdi gran parte dei vantaggi dati dall'uso di vb. A quel
punto sarebbe molto più utile scrivere tutto in c++.
4. Utilizzando un db è molto più facile fare ricerche complesse.
5. Usando un db eviti di doverti gestire a mano tutti i dettagli degli
accessi ai dati.
Per la collaborazione sono disponibile a discuterne. Contattami in privato.


Si, e' vero, ma ho preferito usare un database, per i motivi vedi la
risposta al messaggio di Allanon.

 [come invece succede in OE]) 
Un bel troiaio OE :-)
-- 
 Pastrano

> Per la collaborazione sono disponibile a discuterne. Contattami in
privato.
Volentieri, ma...
mi mandi il tuo indirizzo email?
            Allanon

 li registra, e da quanto tempo e' disposto a perderci
Be, se questi sono i tempi che ottieni, evitare i db non è un gran
vantaggio. Io usando i db ottengo più o meno gli stessi tempi. Infatti ho
notato che quel che rallenta il programma non è tanto il caricamento dei
messaggi dal db, mai piuttosto il loro inserimento nella listview che
utilizzo per la visualizzazione.
A questo punto penso che riprenderò in mano il progetto di una mia controllo
simile a una listview, che però permette di caricare i messaggi
progressivamente. In pratica all'inizio non carico tutti i messaggi, ma solo
quella ventina che effetivamente appaiono sullo schermo, gli altri verranno
caricati secondo necessità quando verrà scorsa la lista.

 ha scritto nel messaggio
news:mloy6.4574$Ds5....@news.infostrada.it...


Mi avevi detto di contattarti, ma...
Mi serve l'email...
Il mio é giusto
        Ciao
                Allanon


Scusa se non ti ho risposto prima, ma nel fine settimana il server news di
libero era indisposto.
Il mio indirizzo lo trovi sotto.
--
Samuele Battarra
mail server: 
libero.it
, account: battarsa

 che utilizzo per la visualizzazione. 
Quello e' facile, basta mostrare solo gli elementi della lista necessari.
Pero' se per ogni messaggio uno si deve fare una query mi sembra faticoso
(almeno i messaggi del thread si dovranno conoscere): ma insomma, io e'
una vita che non pratico database, magari dico qualche sciocchezza :-)
-- 
 Pastrano

 Grazie
Io faccio cosi'.
Utilizzando il controllo WinSock mi connetto al server (nel mio caso 
news.libero.it
) ala porta 119 (che è quella predefinita per le news).
A questo punto comunico con il server seguendo il protocollo descritto nella RFC 977.
L' e-mail non la gestisco, il mio e un programma solo per le news.

 saltati perchè saranno inseriti quando si aprirà il tread. 
Poi vai a ricercarli sul db o li tieni in memoria?
-- 
 Pastrano

 
Intndi i messaggi di risposta di un tread? Li carico dal db solo nel momento in cui effetivamente mi servono.