Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Odbieranie danych z konkretnego portu.
miniol
post 10.07.2012, 10:11:48
Post #1





Grupa: Zarejestrowani
Postów: 84
Pomógł: 4
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


Mam takie nieco bardziej teoretyczne pytanie.

W jaki sposób mogę za pomocą PHP odebrać dane z jakiegoś portu (np: 8844).
Czy posiadając hosting współdzielony mogę takie dane otrzymywać w sposób bezpieczny (czy np inni nie będą mieli do nich dostępu), jeśli podam jako serwer swoją domenę podpiętą właśnie pod ten serwer.

Konkretnie chcę odebrać sygnał z samochodowego nadajnika GPS i nanieść te dane na mapę. Oczywiście GPS jest wyposażony w nadajnik GSM, który przekazuje dane na serwer.
Go to the top of the page
+Quote Post
Sephirus
post 10.07.2012, 10:18:00
Post #2





Grupa: Zarejestrowani
Postów: 1 527
Pomógł: 438
Dołączył: 28.06.2011
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


Co do słuchania na porcie (o ile serwer pozwoli):

http://php.net/manual/en/function.socket-listen.php

Zaznaczam jednak że PHP nie jest do tego optymalnym wyborem...

Co do bezpieczeństwa to jeśli będziesz z tego portu dane odpowiednio analizował to nie powinno być większego problemu. Pamiętaj jednak, że normalnie powinien tu się znaleźć jakiś protokół uwierzytelniania takiego połączenia - może ten twój GPS coś takiego ma i musiałbyś jedynie go obsłużyć. smile.gif Jeśli nie to musisz bardzo uważać na dane przychodzące na ten port.


--------------------
If you're good at something, never do it for free.
Potrzebujesz skryptu JS lub PHP - szukasz kogoś kto przetestuje twoją aplikację pod względem bezpieczeństwa? Szybko i solidnie? Napisz ;)
Mój blog - Jak zwiększyć wydajność front-endu - O buforowaniu wyjścia w PHP słów kilka...
Go to the top of the page
+Quote Post
miniol
post 12.07.2012, 10:27:19
Post #3





Grupa: Zarejestrowani
Postów: 84
Pomógł: 4
Dołączył: 25.03.2011

Ostrzeżenie: (0%)
-----


Port jest chyba inny. Niestety nie mam przy sobie dokumentacji i strzeliłem jakiś pierwszy lepszy jaki mi przyszedł go głowy.
W każdym razie tego właśnie potrzebowałem. Już znalazłem jakiś przykład nawet i jak tylko wrócę do domu to postaram się coś wyłapać.

Jeszcze takie pytanie.
Jak długo mogę odczytywać te dane z portu? Chodzi o to, że GPS nadaje sygnał co 5 minut. Czy sygnał jest gdzieś zapisywany w pamięci tymczasowej na te 5 minut i mogę w każdej chwili odczytać ten ostatni sygnał zanim nie zostanie nadpisany? Czy może sygnał "przelatuje" przez mój serwer i od razu znika- oznacza to wtedy, że jeśli nie wyłapię sygnału w momencie wysłania, to już przepadł.
Mam nadzieję, że wiadomo o co mi chodzi.
Pytania może banalne, ale nigdy nie miałem doczynienia z nasłuchiwaniem portu i niewiele o tym wiem.

Czy ktoś mi może powiedzieć, dlaczego nie otrzymuję żadnych danych takim kodem?

  1. <?php
  2. // Set the ip and port we will listen on
  3. $host = '79.96.128.124';
  4. $port = 8827;
  5.  
  6.  
  7. // create low level socket
  8. if(!$socket=socket_create(AF_INET,SOCK_STREAM,0)){
  9. trigger_error('Error creating new socket',E_USER_ERROR);
  10. }
  11.  
  12. # reuse socket tweak
  13. if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) {
  14. echo socket_strerror(socket_last_error($socket));
  15. }
  16.  
  17. // tie up socket to TCP port
  18. if(!socket_bind($socket,$host,$port)){
  19. trigger_error('Error binding socket to TCP host:'.$host.', port:'.$port.'',E_USER_ERROR);
  20. }
  21.  
  22. // begin listening connections
  23. if(!socket_listen($socket)){
  24. trigger_error('Error listening socket connections',E_USER_ERROR);
  25. }
  26.  
  27. // create communication socket
  28. if(!$comSocket=socket_accept($socket)){
  29. trigger_error('Error creating communication socket',E_USER_ERROR);
  30. }
  31.  
  32. // read socket input
  33. $socketInput=socket_read($comSocket,1024);
  34.  
  35. //write data to file
  36. print_r($socketInput);
  37. echo $socketInput;
  38.  
  39. // close sockets
  40. socket_close($comSocket);
  41.  
  42. socket_close($socket);
  43. ?>
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.06.2025 - 14:09