Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41

    [Delphi] Problema Server/Client HTTP

    Buongiorno a tutti,
    è un po' che sto cercando di risolvere un problema dal quale non riesco a uscirne
    Il mio obbiettivo è creare un server HTTP in delphi che mi invii l'immagine di una termocamera al quale è connesso l'applicativo stesso.

    Il tutto sembra funzionare, ma dopo un po' il server o, solitamente, il client crasha ( va in not responding )

    Facendo qualche check ho notato che ogni mia richiesta al server apre una porta che rimane in TIME_WAIT per un certo periodo prima di chiudersi e non vorrei che questo possa causare problemi.
    Come posso risolverlo?





    Per fare dei test ho fatto anche un semplice server che ad ogni richiesta di get mi restituisce sempre la stessa immagine e una pagina html che a timer richiede quest'ultima ed il risultato sono questi errori ( lato client... Lato server 0 errori, ero in debug ).
    Controllando con netstat anche in questo caso mi rimangono porte aperte.





    Se vi può essere utile, vi allego anche sorgente del server e pagina html di esempio per cercare di capire dove sbaglio
    L'immagine che sto utilizzando è questa: http://oi57.tinypic.com/2e3yao4.jpg
    File allegati File allegati

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Ho fatto una prova con il codice che hai scritto e - almeno per quanto riguarda la parte di restituzione dell'immagine dal server - a me sembra che funzioni correttamente (vedo l'immagine che ho usato come esempio per il download dal server).

    Hai verificato di non aver scelto una immagine con un formato anomalo o con errori? Magari prova con un'altra.

    In alternativa, incolla direttamente nella barra degli indirizzi del browser l'URL con cui scarichi l'immagine (poiché non sempre è possibile accedere a un dominio differente da un altro dominio dell'applicazione, e in certi casi per i file in locale l'accesso alla rete è inibito).

    In merito al problema delle miriadi di porte aperte, non capisco se queste sono riferite al tuo server oppure a un'altra applicazione o connessione. Nell'esempio che hai fornito, non riscontro questo problema.

    Ciao! :bye:
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    No ma anche io con il browser vedo correttamente l'immagine, solo che ogni tanto mi da quell'errore lì il browser e visivamente vedi l'immagine che per un istante scompare ( pagina bianca ).

    Per le porte aperte a me succede sia con il mio server per la telecamera che con l'esempio dell'allegato ( apro la pagina con firefox... non so se cambi qualcosa ).
    L'immagine che ho messa prima erano alcune delle porte che sono rimaste aperte dopo neanche un minuto che ho aperto la pagina html

    Il fatto che io passi da un proxy può essere un motivo?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,296
    Quote Originariamente inviata da Jey Visualizza il messaggio
    No ma anche io con il browser vedo correttamente l'immagine, solo che ogni tanto mi da quell'errore lì il browser e visivamente vedi l'immagine che per un istante scompare ( pagina bianca ).
    Il problema può essere legato all'accesso multithreading al file o a un problema di connessione di diverso tipo.

    Quote Originariamente inviata da Jey Visualizza il messaggio
    Per le porte aperte a me succede sia con il mio server per la telecamera che con l'esempio dell'allegato ( apro la pagina con firefox... non so se cambi qualcosa ).
    [...]
    Il fatto che io passi da un proxy può essere un motivo?
    Sicuramente può influire. Fai una prova in locale, avviando la tua applicazione e usando localhost come indirizzo per verificare se i problemi permangono. Se non noti nulla di particolare, allora è il proxy a bloccare o intervenire in qualche modo sulle richieste e lo scambio di dati.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Ho provato a non passare dal proxy ed il risultato è questo:



    A qusto punto è il pc che ce l'ha con me
    Che poi con questo esempio starei teoricamente andando a 10 frame al secondo ( 1 richiesta ogni 100ms )... Col server della telecamera devo poter andare fino a 120 frame

  6. #6
    L'oggetto TJPEGImage poi lo deallochi?

  7. #7
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Si, nel server della termocamera elimino tutto.
    In quello che ho fatto d'esempio me ne sono scordato

    Comunque, anche deallocando la jpeg nel server d'esempio, il risultato non cambia

    Cambia però nel momento in cui setto a 0 la property 'TerminateWaitTime' dell'http server.
    Così sembra chiudere tutto subito
    Ricordo di averla impostata a 1 per test ma il risultato non cambiava... 0 gli piace decisamente di più

    Ora devo capire perchè crasha il client delphi...
    Faccio qualche test e aggiorno a breve, intanto grazie a tutti dell'aiuto!
    Il bello dei computer è che puoi programmarli e saprai sempre cosa aspettarti. Non come le persone.
    Il bello delle persone è che non ti annoierai mai perchè non saprai mai cosa aspettarti. Non come i computer.

  8. #8
    Sei sicuro di non avere qualche altro memory leak in giro? Uso quel componente da anni in programmi attivi 7 giorni su 7 e problemi mai avuti.

  9. #9
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Certo, anche perchè non si blocca praticamente mai il server... E' il client che scoppia ma non per problemi di memoria, quella rimane costante

    Il mio unico dubbio è che il client rimanga bloccato, per qualche motivo, nella chiamata Get... Per quel che so, e potrei sbagliarmi, la Get fatta in un timer è bloccante finchè non viene completata e se per qualche motivo il server non mi risponde io sono bloccato... Ma perchè non dovrebbe rispondere?
    Il bello dei computer è che puoi programmarli e saprai sempre cosa aspettarti. Non come le persone.
    Il bello delle persone è che non ti annoierai mai perchè non saprai mai cosa aspettarti. Non come i computer.

  10. #10
    Utente di HTML.it L'avatar di Jey
    Registrato dal
    Jan 2013
    Messaggi
    41
    Buongiorno a tutti, ho fatto una piccola modifica al server in modo che generasse lui un'immagine senza doverne caricare da file e ho anche fatto un piccolo client per ricevere le immagini.

    Non ho ancora testato abbastanza il client per vedere se crasha anche questo, ma ho visto che il comportamento è lo stesso: miriadi di porte in TIME_WAIT ( cosa che non succede se ottengo l'immagine da browser )

    Consigli?
    File allegati File allegati
    Il bello dei computer è che puoi programmarli e saprai sempre cosa aspettarti. Non come le persone.
    Il bello delle persone è che non ti annoierai mai perchè non saprai mai cosa aspettarti. Non come i computer.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.