przeszukałem forum wypróbowałem z 10 przykładów w różnych konfiguracjach ale nie mogę sobie poradzić z odczytem danych z postu serwera.
Mam apache na Linuksie - nasłuchuje na dwóch portach standardowo na 80 i dodatkowo na 8010. Na porcie 80 stoi strona(sztywno ustawiony socket w VH 192.168.0.157:80 ) natomiast na port 8010 są wysyłane dane z urządzenia GPRS oba porty są przekierowane na routerze tak aby były widziane z zewnątrz strona działa poprawnie a na port 8010 przychodzą pakiety z urządzenia GPRS - widać w WIRESHARKU jednak nie jestem w stanie pobrać tych danych i wyświetlić za pomocą PHP :/
przykład z tego forum: (wyświetla się pusta strona)
<?php // Set the ip and port we will listen on $host = 192.168.0.157; $port = 8010; // create low level socket if(!$socket=socket_create(AF_INET,SOCK_STREAM,0)){ } # reuse socket tweak if (!socket_set_option($socket, SOL_SOCKET, SO_REUSEADDR, 1)) { exit; } // tie up socket to TCP port if(!socket_bind($socket,$host,$port)){ } // begin listening connections if(!socket_listen($socket)){ } // create communication socket if(!$comSocket=socket_accept($socket)){ } // read socket input $socketInput=socket_read($comSocket,1024); //write data to file // close sockets socket_close($comSocket); socket_close($socket); ?>
przykład 2 pusta strona (zapętla się w nieskończoność ale nadal nic nie wyświetla)
<?php //The Server $address = "192.164.0.157"; $port = "8010"; /* create a socket in the AF_INET family, using SOCK_STREAM for TCP connection */ $mysock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_bind($mysock, $address, $port); socket_listen($mysock, 5); $client = socket_accept($mysock); $i = 0; while (true == true) { $i++; $input = socket_read($client, 2048); } socket_close($client); socket_close($mysock); ?>
przykład 3 (wyrzuca: //host = 192.168.0.157 //port = 8010 Address already in use (0))
<?php $socket = stream_socket_server("tcp://192.168.0.157:8010", $errno, $errstr); if (!$socket) { } else { while ($conn = stream_socket_accept($socket)) { } } ?>
jakieś pomysły?