2011-04-26 61 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 ... 
} 

將是最簡單的基本形式。