[Python] salvare file da stream TCP

Marco Giusti marco.giusti a gmail.com
Mer 1 Set 2010 22:19:56 CEST


On Wed, Sep 01, 2010 at 09:46:23PM +0200, Giampaolo Rodolà wrote:
> In tal caso, essendo il task molto semplice, il mio consiglio è quello
> di scrivere un semplice server coi cari buon vecchi socket.
> Col server di esempio mostrato nella documentazione hai praticamente
> gia fatto tutto.
> Riguardo il come intercettare "FINE_FILE" è molto semplice.
> Con socket.recv() leggi i dati dal socket un tot alla volta, li salvi
> da qualche parte e poi implementi la logica per "dividerli" in base a
> FINE_FILE.

Sperando che il file in questione non sia un'email a proposito di come
salvare i file da stream TCP, dove FINE_FILE viene citato molto spesso
ma non per indicare la fine di un file ma per stabilire il patter di
divisione degli stessi. Sarebbe seccante che il file si interrompesse
qui. FINE_FILE Oppure qui. FINE_FILE O qui. FINE_FILE

FINE_FILE FINE_FILE FINE_FILE
FINE_FILE FINE_FILE FINE_FILE
FINE_FILE FINE_FILE FINE_FILE

m.

> --- Giampaolo
> http://code.google.com/p/pyftpdlib/
> http://code.google.com/p/psutil/
> 
> Il 31 agosto 2010 19:18, ugaciaka <ugaciaka a gmail.com> ha scritto:
> > Rispondo un po' a tutti e intanto vi ringrazio per le risposte qui datemi.
> >
> > Da quanto ne so, scusate ma non posso proprio essere più preciso, c'è
> > un software (sviluppato tanto tanto tempo fa, installato in una
> > galassia lontana lontana) che spedisce via TCP/IP dei file xml (più
> > che altro è un flusso).
> >
> > Il server che intercetta il tutto esiste già: è scritto in Delphi 6 e
> > usa i componenti Indy, per sapere quando finisce un file e ne inizia
> > un altro (se non ho mail interpretato il codice) controlla man mano se
> > c'è la stringa FINE_FILE (il client remoto la inserisce apposta questa
> > stringa).
> >
> > Purtroppo dopo anni di onorato servizio, forse per qualche
> > aggiornamento windows ma nessuno ha capito perché e io ho rinunciato,
> > tutto questo non funziona più perché vengono sollevate eccezioni di
> > una dll di windows (ntdll.dll). Ho controllato con Wireshark e il
> > flusso arriva corretto, quindi è colpa del server.
> >
> > Visto che a noi serve anche solo un semplice script che salvi questi
> > file da qualche parte ho pensato subito a Python, domani leggo meglio
> > questi esempi http://docs.python.org/library/socket.html#example ma
> > non vedo come "spezzare" all'arrivo di una stringa ben precisa ...
> >
> > Alla luce di queste precisazioni, che non ho potuto dare prima
> > purtroppo, chiedo ulteriori lumi a riguardo.
> >
> > Grazie :-)

-- 
Lo punite del fatto che la sua infanzia ha strisciato sul suolo senza
stelo e senza tutore; gli imputate come un misfatto l'isolamento in cui
lo avete lasciato; della sua sventura fate il suo delitto! Nessuno gli
ha insegnato a sapere ciò che faceva: quest'uomo ignora. La sua colpa
appartiene al suo destino, non a lui. Voi colpite un innocente.
		-- Victor Hugo


Maggiori informazioni sulla lista Python