[php][flash] PROBLEM (dla ekspertow)

0

Witam!
Mam pewien problem, postaram sie przedstawic jego specyfikacje, nie licze na gotowe rozwiazanie problemu w postaci skryptow, ale o jakies wskazowki jakich funkcji uzyc, a przynajmniej informacje co jest mozliwe do wykonania, a co nie.

Problem wyglada nastepujaco. Na swoim komputerze uruchamiam program napisany przeze mnie (jezyk nie ma tu znaczenia), w tym miejscu nalezy zaznaczyc ze moj komputer jest za routerem, i firewallem, a poza tym ma dynamiczne IP, wiec nie moze przybierac roli serwera (tzn nie mozna nawiazywac z nim polaczen, polaczenia moze nawiazywac wylacznie on).
A na swojej stronie internetowej (serwer na ktorej stoi www posiada php, ale niestety nie mam dostepu do shella, wiec pisanie programu pod ten serwer odpada) chce umiescic flasha (ktorego bedzie pisal znajomy, nie ja). I teraz tak... uzytkownik wpisze w polu tekstowym w tym flashu pewne dane, chce aby zostaly one przeslane do programu na moim komputerze, moj program je obrobi, wysle z powrotem do flasha, w tym momencie wynik powinien zostac wyswietlony uzytkownikowi (we flashu). Operacja bedzie powtarzac sie wielokrotnie. I teraz tak.. najprosciej by bylo aby moj program przy uruchomieniu nawiazywal polaczenie z owym flashem, i trzymal je juz az do konca dzialania (wymieniajac sie danymi, a w razie zerwania reconnect), ale nie wiem czy to jest mozliwe?? i tu jest wlasnie pytanie numer 1. Czy program moze nawiazac polaczenie z flashem na stronie? Zakladajac, ze nie moze przychodzi na mysl nastepne rozwiazanie - posluzyc sie php. I teraz tak, program po uruchomieniu bedzie laczyl sie z funkcja php, a kiedy ktos wpisze dane do flasha, zostana one przeslane do owej funkcji, funkcja zas przekaze je programowi. (z tego co sie orientuje komunikacja pomiedzy php i flashem jest mozliwa, ale tez prosil bym o przyblizenie problemu), w drodze powrotnej informacji rowniez bedzie posredniczyc php. Tylko czy aby php bedzie moglo utrzymac stale polaczenie z programem?? po ilu sekundach zostanie one zerwane? Mozna zrobic oczywiscie automatyczny reconnecting, z tym nie bedzie problemu. No i tu ostatnie dwa pytania - czy php moze utrzymac stale polaczenie z programem pracujacym na moim komputerze, a jesli moze to czy flash moze sie z nia (z funkcja php) biegle komunikowac?

Mam nadzieje ze przedstawilem problem dosc dokladnie, jesli cos jest nadal nie jasne prosze pytac. Dziekuje z gory za wszelka pomoc, nawet ta ogolnikowa.

Pozdrawiam,
Jurek

0

A więc tak. Mogę się mylić, ale wydaje mi się, że sprawa ma się następująco: Czas, jaki skrypt PHP może się wykonywać jest mocno ograniczony. Jest to średnio ok. 10 sekund (jest to ustawiane w pliku php.ini). Wydaje mi się, że co taki czas musiałbyś łączyć się z PHP. Dodatkowo jeśli się nie mylę, to wysyłanie danych do PHP może odbywać się tylko poprzez zapytanie, więc połączenie z PHP musiałbyś zerwać i nawiązać na nowo w celu przesłania informacji. Z drugiej strony nie bardzo orientuję się, jak to jest we flashu, ale raczej musiałby się on łączyć z PHP dwa razy. Raz w celu przesłania danych do Twojego komputera, drugi raz w celu odebrania potrzebnych informacji. Oczywiście sprawa miałaby się prościej, gdybyś miał jakiś serwer pośredniczący. Wtedy Ty otwierasz połączenie z tym serwerem, które będzie otwarte cały czas, a skrypt PHP otwiera połączenie, kiedy potrzebuje obrobić dane, serwer te dane przesyła do Twojego kompa, Ty je przerabiasz, odsyłasz, a serwer pośredniczący odsyła dane do PHP. Wtedy wszystko będzie mogło zostać wykonane przez jedną funkcję PHP odpowiednio nawiązującą połączenie za pomocą gniazdek. To chyba tyle wiem na ten temat :]

0

a nie możesz po prostu przerobić ten swój program na język PHP ? w większości przypadków się da, zresztą nie wyobrażam sobie sytuacji w której by się nie dało, chyba że autor wątku chce zrobić trojana żeby działał na systemach za firewallem ;P

0

Nie chce zrobic trojana to raz. A po drugie nawet gdyby sie dalo przerobic na php (choc z pewnymi funkcjami mogl by byc klopot), to ten program jest na tyle duzy ze ta mozliwosc odpada. pisalem go poltora roku, i naprawde nie mam zamiaru przepisywac go na php.

0

Czy program moze nawiazac polaczenie z flashem na stronie?

hmm.... nawet gdyby flash byl wstanie zainicjować gniazdo oczekujące na połączenie (tego nie wiem bo nie lubię tego wynalazku) to jest on uruchamiany po stronie klienta. Skąd będziesz wiedział kto z jakiego adresu IP i o jakim czasie akurat wszedł na twoją stronę z flashem, no i jeśli zrobi to np. 300 osób na raz to połączysz się ze wszystkimi ?

Tylko czy aby php bedzie moglo utrzymac stale polaczenie z programem?? po ilu sekundach zostanie one zerwane?

teoretycznie tak, ale przepływ danych będzie działał tylko w jednym kierunku, od serwera do klienta, w praktyce połączenie zrywane jest po 30 sekundach a administratorzy blokują możliwość przedłużenia go...

0

hmm.... nawet gdyby flash byl wstanie zainicjować gniazdo oczekujące na połączenie (tego nie wiem bo nie lubię tego wynalazku) to jest on uruchamiany po stronie klienta. Skąd będziesz wiedział kto z jakiego adresu IP i o jakim czasie akurat wszedł na twoją stronę z flashem,

Piechnacie, nie mam zamiaru sie z Toba ort!, bo wydaje mi sie ze moje pojecie o flashu, jest jeszcze mniejsze niz Twoje. Ale moim zdaniem (praktycznie jestem tego pewien), ze flash po czesci dziala rowniez na serwerze, m. in. moze tworzyc i modyfikowac tam pliki. Gralem juz w niejedna gre flashowa on-line ktora posiadala TOP-TEN, a najlepsi gracze mogli sie wpisywac (swoje nicki). wydaje mi sie ze taka operacja wymaga zapisania pliku na serwerze. Albo ingerencji w baze danych (np. MySQL).

0

no coś ty, flash działa w całości po stronie klienta i możesz sobie go ściągnąć, ew. może komunikować się z serwerem z takimi prawami jak ty komunikując się ze stroną internetową otwierając ją w przeglądarce, a top 10 jest bardzo łatwo zrobić, wystarczy że flash wywoła z odpowiednimi parametrami kod PHP na serwerze co można zrobić bardzo łatwo.

0

no coś ty, flash działa w całości po stronie klienta i możesz sobie go ściągnąć, ew. może komunikować się z serwerem z takimi prawami jak ty komunikując się ze stroną internetową otwierając ją w przeglądarce, a top 10 jest bardzo łatwo zrobić, wystarczy że flash wywoła z odpowiednimi parametrami kod PHP na serwerze co można zrobić bardzo łatwo.

Dzieki za uswiadomienie. Tak jak mowilem nigdy flasha nie uzywalem. Rozumiem rowniez ze flash musi potrafic odczytac informacje ktore przesle mu ta funkcja PHP (aby pobrac top10)?

0

tak, jasne, co tylko zechcesz, a najłatwiejszym rozwiązaniem problemu chyba będzie zmiana sposobu dostępu do internetu i ustawienia serwera u siebie, zresztą z tego co piszesz to i tak twój komputer by miał działać po części jako serwer, albo mógłbyś gdzies wykupić serwer na którym miałbyś takie możliwości, mogło by cię to nawet wyjść taniej niż opłata za prąd który zeżre ten komputer jak będzie cały czas włączony :P

test:

Adamo napisał(a)

ktos

0

Piechnacie, nie mam zamiaru sie z Toba ort!

hmmmm tak <ort>zadko</ort> odpowiadam na forum a jak juz cos napisze to wszyscy chca sie ze mna klucic, moze moj avatar to wywoluje ;)

a co do problemu to moze bys sprobowal powalczyc o to zeby twoj program byl dostepny w sieci, w koncu zmienny IP to nie problem bo mozna sobie zalatwic (za darmoche) host np. w no-ip.com, na firewallu mozna jeden port odblokowac a na routerze mozna go przekierowac na lokalny IP, tak by bylo najlatwiej...

0

Piechnat, przecieżJurek napisał, że się z tobą nie chce kłócić :P.
A tak wracając do tematu, to rozwiązanie z przekierowaniem może i jest najprostsze, ale niestety, nie najbezpieczniejsze. Ja na przykład nie mogę sobie niczego postawić u siebie (w sensie ze żadnego serwera), bo mój tata (nota bene admin sieci lokalnej ;) ) nie wyraża zgody na coś takiego. Zawsze na komputer przekierowujący jakieś porty prościej się włamać, a od środka w sieci już można zrobić wszystko. To taka mała dygresja. Natomiast jak chodzi o wykupienieserwera z możliwością odpalenia aplikacji to rzeczywiście często jest to tańsze aniżeli trzymanie kompa włączonego 24h/dobę.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.