ホームページ > バックエンド開発 > PHPチュートリアル > 非常に単純なソケットクライアント PHP クラス

非常に単純なソケットクライアント PHP クラス

WBOY
リリース: 2016-07-25 08:42:28
オリジナル
967 人が閲覧しました
PHP 5 では、ソケット拡張
  1. //socke 操作クラス
  2. class Socket {
  3. private $host;// ソケットに接続されているホスト
  4. private $port;// ソケットのポート番号
  5. を開く必要があります。 private $error=array() ;
  6. private $socket=null;//ソケットの接続識別子
  7. private $queryStr="";//送信されたデータ
  8. public function __construct($host,$port) {
  9. if (!extension_loaded("sockets")) {
  10. exit("ソケット拡張機能を開いてください");
  11. }
  12. if(empty($host)) exit("ターゲットアドレスを入力してください");
  13. if(empty($ port)) exit("有効なポート番号を入力してください。");
  14. $this->gt;host=$host;
  15. $this->gt;port=$port;
  16. $this->CreateSocket();//接続の作成
  17. }
  18. //ソケットの作成
  19. プライベート関数CreateSocket(){
  20. !$this->socket&&$this->socket=socket_create(AF_INET, SOCK_STREAM, SOL_TCP);//ソケットの作成
  21. $r=@ socket_connect($this->socket,$this->host,$this->port);
  22. if($r){
  23. return $r;
  24. }else{
  25. $this->error[]= socket_last_error($this->socket);
  26. return false;
  27. }
  28. }
  29. //ソケットサーバーにデータを書き込み、
  30. public function wr($contents){
  31. $this->queryStr=""; を読み取ります。
  32. $this->queryStr=$contents;
  33. !$this->socket&&$this->CreateSocket();
  34. $contents=$this->fliterSendData($contents);
  35. $result=socket_write($ this->socket,$contents,strlen( $contents));
  36. if(!intval($result)){
  37. $this->error[]=socket_last_error($this->socket);
  38. return false ;
  39. }
  40. $response=socket_read($this ->socket,12048);
  41. if(false===$response){
  42. $this->error[]=socket_last_error($this->socket);
  43. return false;
  44. }
  45. return $response;
  46. }
  47. //送信データをフィルタリングする
  48. private function filterSendData($contents){
  49. //書き込まれたデータを処理する
  50. return $contents;
  51. }
  52. //すべてのエラー メッセージ
  53. public function getError(){
  54. return $this->error;
  55. }
  56. //最後のエラー メッセージ
  57. public function getLastError(){
  58. return $this->>error(count($this-> ;error));
  59. }
  60. //最後に送信されたメッセージを取得します
  61. public function getLastMsg(){
  62. return $this->queryStr;
  63. }
  64. public function getHost(){
  65. return $this->host;
  66. }
  67. public function getPort(){
  68. return $this->port;
  69. }
  70. //ソケット接続を閉じる
  71. private function close(){
  72. $this->socket&&socket_close($this->socket );//接続を閉じる
  73. $this->gt;socket=null;//接続リソースの初期化
  74. }
  75. public function __destruct(){
  76. $this->close();
  77. }
  78. }
コードをコピー

とてもシンプルなソケット、PHP


ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート