protokół komunikacyjny w php |
protokół komunikacyjny w php |
5.05.2003, 19:57:00
Post
#1
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
Ostatnio udzielałem odpowiedzi w poście i tknęło mnie, że można zrobić coś bardzo ciekawego. Mam na myśli protokół komunikacyjny w php, za pomocą fsocketopen, print i fgets na kliencie oraz readline oraz print na serwerze? Czy tak by się dało. Do zastosowań mniejszych lub nawet większych. Wszystko można by tak było zrobić (nawet serwer www, ale po co wyważać otwarte drzwi). Mam na myśli coś takiego.
Mam pytanie czy coś takiego wogóle by działało (oczywiście by się dało w linuxie odpowiednią konfigurację, wiem, że tak sie da). Tak co do możliwości to uważam, że są spore aczkolwiek niewydajne i myśle, ze lepiej to napisać w czym innym, ale tak się po prostu zastanawiam... Napiszcie co o tym myślicie i czy macie już może tego typu doświadczenia? |
|
|
5.05.2003, 20:12:57
Post
#2
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
Przenioslem topic do php Pro gdyz moze to byc niezly temat do dyskusji.
Tylko szczerze mowiac nie zabardzo wiem co Ci chodzi. Czy mogl bys jasniej przedstawic projekt ? |
|
|
6.05.2003, 13:26:54
Post
#3
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
Cytat Przenioslem topic do php Pro hehe, a ja go szukamCytat Czy mogl bys jasniej przedstawic projekt Są dwie strony (jak zawsze w sieci). Jedna jest serwerem, a raczej skryptem serwera napisanym w php i uruchamianym pod linuxem za pomocą plików (a raczej wpisanych do nich danych)Kod /etc/services --------------- phpserwer 12345/tcp /etc/inetd.conf ----------------- phpserwer stream tcp nowait user /home/user/skrypt.php Skrypt musiałby miec taką postać Teraz dochodzi klient, który może być czymkolwiem, skryptem www, skryptem shellowym, lub nawet programem w c/czymkolwiem. Polega to na tym, że skrypt po stronie klienta miałby otwierałby połączenia za pomocą fsockopen((local)host, 12345). Port podałem taki, żeby się zgadzało z plikem konfiguracyjnym. Teraz tak. Skrypt funkcją fputs() wydawał by polecenia/odpowiadałby serwerowi, a funckją fgets otczytywałby odpowiedzi/polecenia serwera. Inaczej by to jednak musiało wyglądać po stronie serwera, który musiałby jakoś odczytywać dane (komunikowałby sie za pomocą print, więc z tym podejrzewam nie ma problemu). Myślę, że dałoby się to zrobić np. za pomocą readline, tylko czy to by działało w takim zastosowaniu. W przykładzie na górze, w tym dialogu pomiędzy serwerem a klientem użyłem pewnego zabezpieczenia. Klient nie wysyłałby danych dopóki nie otrzymałby od serwera instrukcji READY (print "READYn"; na serwerze). To oznaczałoby, że serwer gotowy jest do otrzymania odpowiedzi/instrukcji. Mam nadzieję, że teraz już to jaśniej wyjaśniłem i jakoś można się w tym połapać! |
|
|
6.05.2003, 13:54:59
Post
#4
|
|
Grupa: Przyjaciele php.pl Postów: 2 335 Pomógł: 6 Dołączył: 7.03.2002 Ostrzeżenie: (0%) |
No jakos mozna
Tylko zastanawiam sie po co chcesz cos takiego zrobic ? Cos takiego mozna osiagnac np w polaczeniu z Flashem. Na kliencie odpalamy Flasha, ktory np jest chatem. Laczy sie on do strony przekazujac jej dane. Strona odpowiada mu itd. Jednak wg. mnie lepszym rozwiazaniem jest Java, ktora jest min. do tego przeznaczona. |
|
|
6.05.2003, 14:00:13
Post
#5
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
wiem, tylko, że ja nie znam javy. Wprawdzie mam u siebie pare książek o javie ale na rozdziale 3 wysiadam. a php znam więc jest to dla mnie kwestią napisać coś, a nie nauczyć się języka od początku (żeby poznać jave tak jak php musiałbym się uczyć ze 4 miesiące) i dopiero potem coś napisać! a php jest bardzo dobrym narzędziem z wbudowaną obsługą wielu standartów, co mi bardzo odpowiada! A ten pomysł to tak tylko z czystej ciekawości i troche z nóduw, a nie chce mi się pisac kolejnej jeszcze lepszej księgi gości (php to tylko moje hobby i sam wymyślam sobie zadania).
|
|
|
6.05.2003, 14:08:54
Post
#6
|
|
Grupa: Zarząd Postów: 2 277 Pomógł: 6 Dołączył: 27.12.2002 Skąd: Wołów/Wrocław |
Jak chcesz, to ci parę wymyślimy, Jestem pewien, że pracy jest wiecej, niż chętnych do jej wykonania.
Jeśli jednak masz watpliwości, czy sięgnąc po Jave, warto zajrzeć do odświerzonego własnie topicu dragossaniego na ten temat na hydeparku -------------------- "Niezależnie od tego, jakie masz osiągnięcia, ktoś Ci pomaga..."
|
|
|
6.05.2003, 16:25:33
Post
#7
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
a co powiecie na najprostszą implementacje? Niestety nie jest przetestowana, bo mój mandrake nie posiada pliku inetd.conf. Ale chyba to zostawie, bo zdaje się, że w końcu będzie można się zająć php.pl.
ale wracając do kodu! KLIENT:
To było na tyle, może kogoś to zainteresuje i to skończy, a może ja to kiedyś skończe... (chociaż jak już robić coś takiego, to, racja, nie w php) |
|
|
6.05.2003, 16:56:42
Post
#8
|
|
Grupa: Przyjaciele php.pl Postów: 398 Pomógł: 0 Dołączył: -- Skąd: Poznań Ostrzeżenie: (0%) |
W Mandrake'u jest xinetd o ile się orientuję. Co do serwerów http napisanych w php, to jest już coś takiego (był na ten temat post na forum) - trzeba być nieco nawiedzonym, żeby brać się za coś takiego :wink:. Sam pomysł ustawienia skryptu php bezpośrednio na porcie jest niezły i mógłby się sprawdzić na przykład jako element podnoszenia bezpieczeństwa jakiegoś bardziej złożonego systemu. Zastanawiam się właśnie nad zastosowaniami. Jak coś wymyślę to napiszę.
Jedno skojarzenie: jak to się ma do SOAP i XML-RPC? Drugie skojarzenie: WDDX jako format przesyłu zmiennych przez taki port. -------------------- cease this long, long rest / wake and risk a foul weakness to live / when it all comes down / watch the smoke and bury the past again / sit and think what will come / raise your fears and cast them all away
|
|
|
6.05.2003, 17:19:57
Post
#9
|
|
Grupa: Przyjaciele php.pl Postów: 1 467 Pomógł: 13 Dołączył: 22.02.2003 Ostrzeżenie: (0%) |
ale niestety nie rozumiem (jakieś opcje zmienione/dodane/odjęte) sposobu konfiguracji tego pliku (wiem tylko, że trzeba stworzyć plik w /etc/xinetd podobny strukturą do innych). Co do SOAP i jemu podobnych, mysle, że jest jest to chyba naprawde jedno z lepszych zastosowań tego dla czegoś takiego. Ale można to też użyc np. w przypadkach gdy trzeba odwołać się do innej warstwy, mam na myśli nie w skrypcie, np. podczas logowania (żeby nie można było zrobić $logged=true; zamiast try_to_login(nieznane, skryptowi, dane), taki mały konik trojański).
|
|
|
5.06.2003, 12:21:28
Post
#10
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.03.2003 Ostrzeżenie: (0%) |
-------------------- <?print(base64_decode("QWxsIHlvciBiYXNlIGFyZSBiZWxvbmcgdG8gdXMh"));?>
|
|
|
6.06.2003, 08:22:50
Post
#11
|
|
Grupa: Zarejestrowani Postów: 9 Pomógł: 0 Dołączył: 25.03.2003 Ostrzeżenie: (0%) |
Taki protokol komunikacyjny to calkiem niezla rzecz, probuje to jakos rozwinac na swoje potrzeby i wrzuce kod. Mi chodzi raczej o to, aby skrypt www polaczyl sie ze zdalnym serwerem php, zidentyfikowal sie i pobral jakies zmienne albo dane z bazy. Nie wiem jeszcze po co, ale na pewno sie przyda ;-)) Pozdrawiam...
-------------------- <?print(base64_decode("QWxsIHlvciBiYXNlIGFyZSBiZWxvbmcgdG8gdXMh"));?>
|
|
|
Wersja Lo-Fi | Aktualny czas: 10.06.2024 - 06:31 |