Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Serwer TCP pod PHP
sasiadstar
post
Post #1





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

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


Witam serdecznie

Mam urządzenie które ma za zadanie przesłać dane na serwer w formie tekstowej(kilkadziesiąt bajtów jednorazowo).

Dane przekazywane są po TCP
Próbuję to jakoś ogarnąć w PHP ale kombinuję już od jakiegoś czasu i nie bardzo wiem jak się do tematu zabrać.

Do celów testowych uruchomiłem serwer pod node wszystko działa tak jak powinno ale z PHP jakoś nie mogę tego ogarnąć.
Prosiłbym o podpowiedz od czego zacząć

Ten post edytował sasiadstar 17.07.2018, 12:05:50
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
sasiadstar
post
Post #2





Grupa: Zarejestrowani
Postów: 102
Pomógł: 0
Dołączył: 19.06.2015

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


Wracam do tematu
Wszystko co poniżej działa ale tylko na lokalu, niestety na serwerze hostingowym już niestety nie

  1. <?php
  2. echo "OK";
  3.  
  4. /*************************************/
  5. /********Socket Server*********************/
  6. // Set the ip and port we will listen on
  7. $address = '127.0.0.1';
  8. $port = 3000;
  9. // Create a TCP Stream socket
  10. $sock = socket_create(AF_INET, SOCK_STREAM, 0); // 0 for SQL_TCP
  11. // Bind the socket to an address/port
  12. socket_bind($sock, 0, $port) or die('Could not bind to address'); //0 for localhost
  13. // Start listening for connections
  14. socket_listen($sock);
  15. //loop and listen
  16. while (true) {
  17. /* Accept incoming requests and handle them as child processes */
  18. $client = socket_accept($sock);
  19. // Read the input from the client ? 1024000 bytes
  20. $input = socket_read($client, 1024000);
  21. // Strip all white spaces from input
  22. echo $input;
  23. flush();
  24. sleep(1);
  25.  
  26.  
  27.  
  28.  
  29.  
  30. // Close the master sockets
  31. }
  32. socket_close($sock);
  33.  
  34.  
  35. ?>

Te flusze to tylko po to żebym mógł z przeglądarki odpalać

Client w node
[JAVASCRIPT] pobierz, plaintext
  1. var net = require('net');
  2. function loop(){
  3. var client = new net.Socket();
  4. client.connect(3000, 'xxx', function() {
  5. console.log('Connected');
  6. client.write('CZESC.');
  7. });
  8.  
  9. client.on('data', function(data) {
  10. console.log('ODEBRANO: ' + data);
  11. client.destroy(); // kill client after server's response
  12. });
  13.  
  14. client.on('close', function() {
  15. console.log('Connection closed');
  16. });
  17. }
  18. setInterval(loop,3000);
[JAVASCRIPT] pobierz, plaintext


Nie wiem czy porty są po blokowane na serwerze i nie ma do nich dostępu czy co?
Czy można ten temat jakoś podejść jakoś inaczej np po zwykłym www port 80 tak żeby serwer tylko odebrał paczkę mimo że brak poprawnego nagłówka i np zapisał do pliku.


P.S Próbowałem też dodać takie coś w htaccess (pewnie coś tu żle napisane jest)
  1. Options +FollowSymLinks -MultiViews
  2. # Turn mod_rewrite on
  3. RewriteEngine On
  4. RewriteBase /
  5.  
  6. RewriteCond %{HTTP_HOST} ^xxx.pl$ [NC]
  7. RewriteCond %{HTTPS} off
  8. RewriteRule ^xxx:3000%{REQUEST_URI} [P,QSA,L]


Ten post edytował sasiadstar 21.07.2018, 08:22:23
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 27.12.2025 - 12:54