2016-04-29 60 views
0

我試圖在我的電腦上使用teamspeak,但由於簡單,我想用我的樹莓派PI來執行腳本,所以我只是寫我的腳本:PHP socket_connect()沒有連接到本地IP

<?php 
error_reporting(E_ALL); 
ob_implicit_flush(); 

$address = "192.168.2.11"; 
$service_port = 25639; 

$socket = socket_create(AF_INET, SOCK_STREAM, 0); 
if($socket === false) 
{ 
    die("Error: " . socket_strerror(socket_last_error())."\n"); 
} 
echo "Connecting to {$address}:{$service_port}...\n"; 
$result = socket_connect($socket, $address, $service_port); 
if($result === false) 
{ 
    die("Error: ".socket_strerror(socket_last_error($socket))."\n"); 
} 
echo socket_read($socket, 512); 
?> 

但每次我運行它,它只是給我:

連接到192.168.2.11:25639 ...

並沒有進一步的消息。我想這個錯誤是socket_create,但改變參數只是拋出錯誤。

我在谷歌搜索和搜索堆棧,但它看起來像我是唯一一個有這個問題。 :/

+0

你們是不是要運行這個作爲一個客戶端或服務器? –

+0

@MatthijsOtterloo連接到teampeak telnet事物的客戶端。 – timmyRS

+0

您認爲PHP正在按順序執行其指令嗎?如果它輸出「Connecting to 192.168.2.11:25639 ...」,那麼*在socket_create()之後,但在socket_connect()和更多代碼之前。你可能會先在socket_connect()之後添加一些輸出來確認問題出在哪裏。如果你想連接到本地IP爲什麼不使用本地主機? – symcbean

回答

0

嘗試運行此:

<?php 
$host="192.168.2.11" ; 
$port=25639; 
$timeout=30; 
$sk=fsockopen($host,$port,$errnum,$errstr,$timeout) ; 

if (!is_resource($sk)) { 
    exit("connection fail: ".$errnum." ".$errstr) ; 
} else { 
    echo "Connected"; 
} 
?> 
+0

謝謝,fsockopen是我正在尋找的命令。 :D – timmyRS

+0

太棒了!如果你需要更多的幫助,隨時問:) –