ホームページ > バックエンド開発 > PHPチュートリアル > PHP SOCKET 技術研究_PHP チュートリアル

PHP SOCKET 技術研究_PHP チュートリアル

WBOY
リリース: 2016-07-21 16:11:51
オリジナル
934 人が閲覧しました

今日は、PHP と C 言語の間でソケットを介して通信するプログラムを作成しようとしました。PHP のマニュアルを読んだところ、fsockopen() を介してソケット接続を確立する方法がいくつかあることがわかりました。次に、 fputs() を使用してメッセージを送信し、 fgets() を使用してメッセージを受信します。

2.socket_create() を通じてソケット接続を確立し、socket_send() またはソケット_write() を使用してメッセージを送信し、socket_recv() またはソケット_read() を使用してメッセージを送信します。

奇妙なことに、マニュアルに次の段落がありました: 「この拡張モジュールは実験的です。関数の名前を含むこのモジュールの動作や、このモジュールに関するその他のドキュメントは予告なく変更される可能性があります。PHP は将来のリリースで変更されます」 . この拡張モジュールは自己責任で使用するよう注意してください。「php4.0 ソケット通信はまだ完全に安定していないようです。

今日、私が作成したクライアントはサーバーと 2 回通信する必要があります。上記の方法を使用してクライアント プログラムを作成したところ、通信が 1 回しかない場合、つまり PHP クライアントがメッセージを 1 回送信してから受信することがわかりました。メッセージを返して接続を閉じます。どちらの方法でも関数を正しく迅速に実装できますが、最初の方法での最初の通信はすぐに終了しますが、2 回目の通信には数分かかりました。何度か試しましたが、プログラムの何が問題だったのか、接続に問題があったのかわかりません。ただし、2 番目の方法では、これら 2 つの通信を迅速に完了できませんでした。 !非常によくやりました。

最後に、2 番目の状況に基づいてクラスを作成しました

//////////////////////////////// ファイルの説明 // / ///////////////////////////////////////

// クラス名 : ソケット

/ / バージョン : V1.0
// 機能概要 : ソケット作成、サーバーへメッセージ送信
// 改訂履歴 : 2004/12/15 初版作成
// 現在 : 2004/12/15 Liu Yongsheng
/// // ////////////////////////////////////////////// ///// ////////////////////////////////////
クラスソケット{
var $socket ; //ソケットハンドル
var $sendflag = ">>>";
var $recvflag = "<<<";
var $response;
var $debug = 1;
functionソケット($ hostname,$port){
$address = gethostbyname($hostname);
$this->socket =ソケット_create(AF_INET,SOCK_STREAM,SOL_TCP);
$result =ソケット_connect($this->socket,$address,$ port);
if($ this->debug == 1){
if ($result echo "socket_connect() failed.nReason: ($result) " .ソケット_strerror($result) "
";
} Else {c echo "connect ok. & lt; br & gt;";
}}}} function sendmsg ($ msg) {
ソケット_write ($ this- & gt; $ msg); g $result =socket_read($this->socket,100);
$this->response = $result;
if($this->debug == 1){
printf("%s $msg
",$this->sendflag);
printf("%s $result
", $ this->recvflag);
}
Return $result;
}
function close(){
socket_close($this->socket);
}

}




http://www.bkjia.com/PHPjc/313850.html

www.bkjia.com

tru​​e

http://www.bkjia.com/PHPjc/313850.html技術記事今日は、PHP と C 言語の間でソケットを介して通信するプログラムを作成しようとしました。PHP のマニュアルを読んだ後、ソケットクライアントを確立する方法がいくつかあることがわかりました。 1. fsockopen() を介してソケット接続を確立します。
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート