FTP - time out (Indy)

0

Mam programik, ktory pstryka zdjęcia kamertą internetową, a potem FTPem (Indy) wysyła to na bezpłatny serwer. Niestety kiepski ten serwer, dosyć często mam przekroczony limit czasu (ustawiony na 30s). Nie chcę dłużej, bo zdjęcia pstrykam co 30s. Zrobiłem wątek, w którym program konwertuje bitmapę do jpg'a, potem łączy się i wysyła to zdjęcie. Liczyłem na to, że jeśli wywali się jeden wątek to następny wywołany za pół minuty zadziała... Ale niestety time out informuje mnie o tym, że czas został przekroczony i czeka na kliknięcie OK. Chciałbym, żeby ten wątek się zwolnił jeśli brak połączenia w ciągu 30s. Jak sobie z tym poradzić

Jacek

0
try
  ftp.Connect(true, 30000);
except
  on Exception do self.free;
end;
0

O tym nie pomyślałem ;-) To znaczy, nie wiedziałem, że ten komunikat to wyjątek. Dziękuję, działa.

Jacek

0

Ja moze jeszcze dodam ze jak chcesz aby troche szybciej dzialalo to mozesz nie rozlaczac sie po uploadowaniu zdjecia. Jak zdjecie masz robione co 30s to wystarczy je tylko zrobic i wysylac. Zawsze to troszeczke ktorej trwa niz z laczeniem :)

0

No to mam lamerskie pytanie w związku z Twoją sugestią. Co jest bezpieczniejsze - nawiązanie takiego połączenia w idealnym przypadku raz (btw. czym podtrzymywać połączenie?), czy nawiązywanie go na krótko (na czas dosyłania zdjęcia) i rozłączanie? Chodzi mi o to, że login i hasło w ftp nie są szyfrowane i jak ktoś jest sprytny to szybko sobie to namierzy... W tej chwili robię to przez darmowy serwer, na który wrzucam zdjęcie, a stronce firmowej, na której widać zdjęcie, jest tylko link. Admin zasugerował, że tak będzie bezpieczniej. ??

Jacek

0

(btw. czym podtrzymywać połączenie?)</quote>
nie rozłączać się :)

0

nie rozłączać się

Ale to nie powstrzyma od automatycznego rozłączania, bo na jego serwerze FTP jest ustawiony Idle time, po którym następuje rozłączenie klienta [ 30 sek.] .. chyba niektóre programy mają taką opcję... - a czy czasem przez Refresh nie da się tego uzyskać sztucznie?

0

No to mam lamerskie pytanie w związku z Twoją sugestią. Co jest bezpieczniejsze - nawiązanie takiego połączenia w idealnym przypadku raz

Ale przy wysylaniu pliku nie masz podawanego loginu i hasla. Podawane ono jest tylko podczas laczenia wiec laczenie sie i rozlaczanie mysle jest bardziej niebezpieczne bo co chwila ten login wysylasz

A co do odpowiedzi Detoxa to pewnie da sie jakos to sztucznie zrobic :> Jak inne programy potrafia to pewnie da sie to jakos napisac :)

0

Jest Noop ;-) Prawie sobie poradziłem, bo dałem nowy wątek, który wysyła tego Noopa co 15 s, ale niestety jak się razem z wątkiem do wysyłania w jednym czasie za to wzieli, to program się buntował :( Sprawdzałem więc czy główny wątek do wysyłania (zmienna typu TThread) ma wartość nil. Ale ona nigdy nie była nil ;) mimo iż w Execute FreeOnTerminate := True. Darowałem sobie więc. Spróbowałem z jednym połączeniem i odświeżaniem co 30s i chwilowo działa. Docelowo będzie to robił komputerek z najwolniejsza neostradą, zobacze, czy będą problemy. A przy okazji - jak sprawdzić, czy wątek pracuje? Może tu popełniałem błąd...

Jacek

1 użytkowników online, w tym zalogowanych: 0, gości: 1