2016-04-29 6 views
0

私は自分のPC上で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チームスピークのtelnetものに接続するクライアント。 – timmyRS

+0

PHPが命令を順不同で実行していると思いますか? "Connecting to 192.168.2.11:25639 ..."という出力がある場合、* socket_create()の後ではなく、socket_connect()およびより多くのコードの直前です。 socket_connect()の後にいくつかの出力を追加して、問題がどこにあるのかを確認することもできます。ローカルIPに接続したいのであれば、なぜlocalhostを使用しないのですか? – 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

素晴らしい!もっと助けが必要な場合は、お気軽にお問い合わせください:) –

関連する問題