ホームページ > バックエンド開発 > PHPチュートリアル > Linux でソケット プログラミングに php を使用すると、接続拒否例外が報告されます。ぜひご覧ください。

Linux でソケット プログラミングに php を使用すると、接続拒否例外が報告されます。ぜひご覧ください。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
リリース: 2016-06-13 12:31:05
オリジナル
1212 人が閲覧しました

Linux でソケット プログラミングに php を使用すると、接続拒否エラーが報告されます。ご覧ください。

この投稿は、2011-06-17 08:40:57 に lovegis0101 によって最終的に編集されました 私は Linux、PHP、ソケットに触り始めたところです (笑)。インターネットでいくつかの情報を見つけて、クライアントとサーバーという 2 つの非常に基本的な PHP スクリプトを作成しました。それらを Windows でテストしたところ、通信できることがわかりました。 。クライアント スクリプトを Linux に配置した後、次のエラーが報告されました:
PHP 警告:socket_connect(): 接続できません [111]: /socketClient.php の 12 行目で接続が拒否されました、12 行目はソケット接続メソッドを呼び出しています。ここでエラーが発生しました
システム環境は次のとおりです。Windows システムの IP: 192.168.0.2 と Linux システムの IP: 192.168.102 に Linux 仮想マシンをインストールしました。 Windows 経由でネットワークに接続します。
この問題に数日間悩まされていますが、解決策が見つかりませんでした。
スクリプト コードを添付します:
サーバー:
<br />
<?php<br />
// 设置一些基本的变量<br />
global $lat,$lnt;<br />
$host = "127.0.0.1";<br />
$port = 8888;<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 />
	while (true){<br />
		$spawn = socket_accept($socket) or die("Could not accept incoming connection\n");;<br />
		echo("socket connected\n");<br />
		if(!$spawn) break;<br />
		$output = "Welcome to the PHP Test Server.....nice\n";<br />
		socket_write($spawn, $output, strlen ($output)) or die("error\n");<br />
		while($input = socket_read($spawn, 64)){<br />
			echo($input);<br />
		}<br />
		echo("\n");<br />
		socket_close($spawn);<br />
	}<br />
}<br />
?><br />
ログイン後にコピー

クライアント:
<br />
<?php<br />
// 设置一些基本的变量<br />
$host = "192.168.0.2";<br />
$port = 8888;<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 />
$result = socket_connect($socket, $host, $port) or die(socket_strerror());<br />
if($result){<br />
	$output="hello server!";//lat:30.582029016593196;lnt:103.98662567138672<br />
    socket_write($socket, $output, strlen ($output));<br />
	$input = socket_read($socket, 1024);<br />
	echo($input);<br />
}<br />
?><br />
ログイン後にコピー
関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート