ホームページ >バックエンド開発 >PHPチュートリアル >PHP ソケット ソケットが接続されておらず、アドレスも指定されていないため、データの送信または受信のリクエストは受け入れられませんでした。

PHP ソケット ソケットが接続されておらず、アドレスも指定されていないため、データの送信または受信のリクエストは受け入れられませんでした。

WBOY
WBOYオリジナル
2016-06-13 12:55:021332ブラウズ

ヘルプ: PHP SOCKET ソケットが接続されておらず、アドレスが指定されていないため、データの送信または受信のリクエストは受け入れられませんでした。

この投稿は、2011-06-03 16:39:41 に subendong によって最終編集されました 以前、2件続けて投稿しましたが、どちらも返信がなかったので、まず、同じような投稿2件を削除していただくようモデレータに申請しました。そうしないと無駄になってしまいます。ゴミみたいに。
その後、マスターが私が提供したコードに基づいてわずかな変更を加えて、コードが正しく実行できるようにしていただければ幸いです。ありがとうございます。

詳細は以下の通りです。
警告:socket_read():ソケット [0] から読み取ることができません:ソケットが接続されておらず、(sendto 呼び出しを使用してデータグラム ソケットを送信する場合に)アドレスが指定されていないため、データの送信または受信の要求は受け入れられませんでした。
サーバー側で実行されるファイルxx.phpを2つ作成しました。 x.phpはクライアント側で実行されるファイルです。
xx.php
<?php <br />
// 设置一些基本的变量 <br />
global $lat,$lnt;<br />
$host = "192.168.1.110"; <br />
$port = 8080; <br />
// 设置超时时间 <br />
set_time_limit(0); <br />
// 创建一个Socket <br />
$commonProtocol = getprotobyname("tcp");<br />
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);<br />
<br />
//绑定Socket到端口 <br />
$result = socket_bind($socket, $host, $port) or die("Could not bind to socket\n"); <br />
$ret = socket_listen($socket, 5);<br />
if($ret)<br />
{<br />
    while (true)<br />
    {<br />
        $spawn = socket_accept($socket);<br />
        if(!$spawn) break;<br />
        $output = "congratulations,you have connected server:" . $host . "!";<br />
        socket_write($spawn, $output, strlen ($output)) or die("error\n"); <br />
        $input = socket_read($socket, 100000);<br />
        socket_write($spawn, $input, strlen ($input)) or die("error\n"); <br />
        socket_close($spawn);<br />
    }<br />
}<br />
socket_close();<br />
?><br />




x.php
<?php <br />
// 设置一些基本的变量 <br />
$host = "192.168.1.110"; <br />
$port = 8080; <br />
// 设置超时时间 <br />
set_time_limit(0); <br />
// 创建一个Socket <br />
$commonProtocol = getprotobyname("tcp");<br />
$socket = socket_create(AF_INET, SOCK_STREAM, $commonProtocol);<br />
if(!$socket) echo "can't creat socket";<br />
//绑定Socket到端口 <br />
<br />
$result = socket_connect($socket,$host,$port);<br />
if($result)<br />
{<br />
    $output="abc";<br />
    socket_write($socket, $output, strlen ($output));<br />
    $input = socket_read($socket, 1024);<br />
}<br />
echo $input;<br />
?>



まずサーバー上で xx.php を開き、次にクライアント上で x.php を開くと、サーバーから上記のエラー メッセージ (socket_read エラー) が表示されます。
多くの情報を探しましたが、解決策が見つかりません。

-----解決策---------
使用可能なテストを提供します 例
// クライアント <br>
// エラー処理を設定します<br>
エラー報告 (E_ALL);<br>
// 処理時間を設定します <br>
set_time_limit (0);<br>
<br>
$ip = "" // IP アドレス<br>;
$port = 1000 // ポート番号<br>
<br>
$socket =ソケット_create (AF_INET, SOCK_STREAM, SOL_TCP) // SOCKETを作成します<br>
if ($socket)<br>
echo "socket_create() が成功しました!0c6dc11e160d3b678d68754cc175188an";<br>
それ以外<br>
エコー "socket_create() が失敗しました:".socket_strerror ($socket)."0c6dc11e160d3b678d68754cc175188an";<br>
<br>
$conn =ソケット_connect ($socket, $ip, $port) // SOCKET接続を確立します<div class="clear">;</div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。