2011-04-26 93 views
3

我打算设计一个网络GPS追踪应用程序。 gps使用端口7070上的TCP(无HTTP标头)传输数据(我希望更改为80)。我知道GPS跟踪器和客户端之间的通信协议,但是我卡住了,因为我无法拦截Web服务器上的数据包。 由于应用程序处于开发阶段,并且我是一名业余爱好者,因此我无法负担专门的Web主机服务器,因此无法访问用于套接字编程的php-cli接口。访问原始的Apache网络服务器请求

有什么办法可以绕过对php-cli的需求并拦截原始tcp数据包。

感谢

回答

3

只要有监听端口7070,您可以与fsockopen()完成一个专门的PHP脚本。当Apache已经侦听端口80时,您不希望将GPS直接发送到端口80.Apache将看到非HTTP数据集进入并完全忽略该请求。

$handle = fsockopen('localhost', 7070, $errno, $errstr); 
if (!$handle) { 
    die("Couldn't bind to socket (err $errno): $errstr"); 
} 

while($data = fgets($handle)) { 
    ... process gps data ... 
} 

将是最简单的基本形式。