Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Połączenie program komputerowy => serwer www
Forum PHP.pl > Forum > PHP
piotras9000
Witam. mam pytanie dotyczące przesyłania danych w obie strony między aplikacją komputerową a stroną www. Otórz stworzyłem komunikator na podstawie tego artykułu: http://www.unit1.pl/196,txt Chciałbym teraz stworzyć pasmo wymiany między takim komunikatorem a stroną www. serwer odbierałby dane które prześle do niego komunikator i odpowiadał na nie. Czy ktoś ma gotowe rozwiązanie? Jakich funkcji użyć i czy to jest możliwe?
misiek172
hmm nie orientuje się zabardzo na tego typu wymianą ale na logike poprostu może zrobić coś takiego że przesyłasz dane na serwer w post

i on generuje jakiś text na podstawie tych danych i wyświetla je jako odpowiedź, ty to pobierasz i robisz coś w stylu eval.
piotras9000
Właśnie planuje to troche przerobić otórz teraz serwer będzie pobierał wiadomości od komunikatora metodą post a przy odbiorze wyświetlał je w postaci źródła. To jednak jest troche mało wydajne gdyż wtedy sprawdzanie musi się odbywać w pętli czyli co np: 1s komunikator ściąga źródło strony. To powoduje niezłe pingowanie. Dobrym rozwiązaniem byłoby poinformowanie odbiorcy o odebranych wiadomościach odrazu po ich wysłaniu. Czyli potrzebuje funkcji która na dane IP i port wyśle odpowiednią wiadmość.
naox
Nie dokońca rozumiem kto tutaj powinien inicjowac transmisję (jakie zdarzenie powinno być przyczyną jego nawiązania). Czy gdy na stronie (serwerze www) coś się dzieje to wtedy nawiązuje połączenie do twojego programu czy na odwrót. Jakie dane maja być przesłane. Nie da się czegoś sensownego poradzić nie znając sytuacji...

Na PM pytałeś mnie o otworzenie serwera socketowego z php. Jeśli masz zamiar użyć tych funkcji na serwerze www (nie własnym) to zapomnij bo tam stronki maja ograniczenie czasowe co do ich wykonywania i nie odpalisz serwera na stałe zeby słuchał. No ale nie wiem w sumie co tu ma byc robione...

Jeśli tak jak napisałeś w temacie twoja aplikacja ma przesłać dane do serwera www (skryptu php) to należy to zrobić zgodnie z protokołem http przez POST lub GET. Trzeba stworzyć socketa i ułożyć pakiet http np

Kod
skrypt.php HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*Accept-Language: plContent-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)Host: host.cosContent-Length: 117 << to trzeba zmienićConnection: Keep-AliveCache-Control: no-cachedana1=blah&dana2=bleee" title="Zobacz w manualu PHP" target="_manual">POST /skrypt.php HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Accept-Language: pl
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: host.cos
Content-Length: 117 << to trzeba zmienić
Connection: Keep-Alive
Cache-Control: no-cache

dana1=blah&dana2=bleee
</a></span>

<span style="font-weight: bold;"><a href="http://pl.php.net/GET /skrypt.php?dana1=blah&dana2=bleee HTTP/1.1Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*Accept-Language: plContent-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflateUser-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)Host: host.cosContent-Length: 117 << to trzeba zmienićConnection: Keep-AliveCache-Control: no-cache" title="Zobacz w manualu PHP" target="_manual">GET /skrypt.php?dana1=blah&dana2=bleee HTTP/1.1
Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*
Accept-Language: pl
Content-Type: application/x-www-form-urlencoded
Accept-Encoding: gzip, deflate
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1)
Host: host.cos
Content-Length: 117 << to trzeba zmienić
Connection: Keep-Alive
Cache-Control: no-cache


Najłatwiej do zapytań http użyć curl-a (oddzielny cgi/exe lub wbudowany w php)
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.