ホームページ > バックエンド開発 > PHPチュートリアル > PHP ソケット構成と例に基づいた詳細な紹介_PHP チュートリアル

PHP ソケット構成と例に基づいた詳細な紹介_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:07:08
オリジナル
832 人が閲覧しました

2 つの php テスト ファイル
server.php

コードをコピーします コードは次のとおりです:

//phpinfo();
//クライアント接続時のタイムアウト
set_time_limit(0);
$ip = '127.0.0.1';
$port = 1935;
/*
+----------------- ------ --------
* @socket 通信の全プロセス
+------------------------- --------
* @socket_create
* * @socket_bind
* * @socket_listen
* * @socket_accept
* * @socket_read
* * @socket_write
* * @socket_close
+----- -------------------- ----------
*/
/*-------------- -- 以下の操作はマニュアルからのものです ----------- --------*/
if(($sock =ソケット_create(AF_INET,SOCK_STREAM,SOL_TCP)) <0) {
echo "socket_create() は次の理由で失敗しました: ".socket_strerror($sock). "n";
}
if(($ret =ソケットバインド($sock,$ip,$port)) < 0) {
echo 「socket_bind() が失敗した理由は次のとおりです: ".socket_strerror($ret)." n";
}
if(($ret =socket_listen($sock,4)) < 0) {
echo "socket_listen()次の理由で失敗しました: ".socket_strerror($ret)."n";
}
$count = 0;
do {
if (($msgsock =ソケット_accept($sock)) < 0) {
echo "socket_accept()失敗:理由: "。socket_strerror($ msgsock)。" n ";
break;
。 n ";
socket_write ($ msgsock, $ msg, strlen ($ msg));

echo" test success n ";
$ buf =ソケット_read ($ msgsock, 8192); 到着する情報: $ bufn ";
echo $ talkback;

if (++ $ count & gt; = 5) {
Break;

}}
// echo $ buf ;}} While ($ SOCK;) );




Client.php




コードを次のようにコピーします:


& lt;?それ(0);
echo "

TCP/IP 接続

n";
$port = 1935;$ip = "127.0.0.1";/*
+-- ---------- ------------------------
* プロセス全体にわたる @socket 接続
+------------ ------ -------------
* @socket_create * * @socket_connect * @socket_write * @socket_read * @socket_close
+---------- ------ -----------------
*/
$socket =socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket < 0) {
echo "socket_create() が失敗しました: 理由: " .socket_strerror($socket) . "n";
}else {
echo "OK.n";
}
echo "'$ip' ポート '$port' に接続しようとしています。 ;
$result =ソケット_connect($socket, $ip, $port);
if ($result < 0) {
echo "socket_connect() failed.nReason: ($result) ".socket_strerror($ result) " n";
}else {
echo "接続 OKn";
}
$in = "ホーン";
$in .= "初血rn";
$out = '';
if(!socket_write ($socket, $in, strlen($in))) {
echo "socket_write() が失敗しました: 理由: " .socket_strerror($socket) . "n";
}else {
echo "情報がサーバーに正常に送信されました。 n";
echo "送信されるコンテンツは次のとおりです:$in
";
}
while($out =ソケット_read($socket, 8192)) {
echo "サーバー応答メッセージを正常に受信しました! n";
echo "受け入れられたコンテンツは次のとおりです:",$out;
}
echo "Close SOCKET...n";
socket_close($socket);
echo "Close OKn";
?>


リスニング
# /usr/local/php/bin/php /usr/local/apache2/htdocs/server.php

リクエスト
# /usr/local/php/bin/php /usr/local/apache2/htdocs/client.php

デフォルトでは、PHP ではソケットは有効になっていません

#cd ./ext/sockets/
# /usr/local/php/bin/phpize
# ./configure --enable-sockets --with- php- config=/usr/local/php/bin/php-config
# make
# make install

php.ini 設定を変更
add
extension=sockets.so

apacheを再起動
# / usr/local /apache2/bin/apachectl restart

====================
Windowsでの設定
php.iniを変更
extension=php_sockets.dll
apacheを再起動します
cmd

C:/php/php.exe F:web/server.php
C:/php/php.exe F:web/client.php

の下に2つの
phpインストールディレクトリがあります

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327567.html技術記事 2 php テスト ファイルserver.php 次のコードをコピーします。 ?php //phpinfo(); //クライアントへの接続時にタイムアウトがないことを確認します。 $ip = '127.0.0.1';ポート = 1935 ; /* +-----...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のおすすめ
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート