ホームページ  >  記事  >  バックエンド開発  >  PHP 初心者ガイド: TCP/IP プログラミング

PHP 初心者ガイド: TCP/IP プログラミング

王林
王林オリジナル
2023-05-20 21:31:391745ブラウズ

PHP は、一般的なサーバーサイド スクリプト言語として、Web アプリケーションの開発だけでなく、TCP/IP プログラミングやネットワーク プログラミングにも使用できます。この記事では、TCP/IP プログラミングの基本と、TCP/IP プログラミングに PHP を使用する方法を紹介します。

1. TCP/IP プログラミングの基礎知識

TCP/IP プロトコルは、インターネット上の通信の標準プロトコルであり、TCP プロトコルと IP プロトコルの 2 つの部分で構成されます。 TCP プロトコルは、信頼性の高い接続の確立、データの送信、送信データの確認、接続の終了を担当し、IP プロトコルはアドレス指定、ルーティング、およびサブパッケージ化を担当します。

TCP/IP プログラミングでは、通信にソケット (ソケット) を使用します。ソケットはネットワーク プログラミングにおける抽象概念であり、その主な機能は、さまざまなプロセスがソケットを介してデータを交換できるように通信メカニズムを提供することです。

2. PHP を使用した TCP/IP プログラミング

  1. クライアント接続の確立

PHP では、 fsockopen() 関数を使用して確立できます。サーバーとの TCP 接続は次のとおりです:

$fp = fsockopen("www.example.com", 80, $errno, $errstr, 30);
if(!$fp){
    echo "$errstr ($errno)
";
} else {
    $out = "GET / HTTP/1.1
";
    $out .= "Host: www.example.com
";
    $out .= "Connection: Close

";
    fwrite($fp, $out);
    while (!feof($fp)) {
        echo fgets($fp, 128);
    }
    fclose($fp);
}

上記のコードでは、最初に fsockopen() 関数を使用してサーバーとの TCP 接続を確立します。パラメーターにはサーバー アドレス、ポート番号、エラーが含まれます番号、エラーメッセージ、延長時間。接続が成功した場合は、 fwrite() 関数を使用してサーバーにリクエストを送信し、 fgets() 関数を使用してサーバーからの応答を読み取り、最後に fclose() 関数を使用して TCP 接続を閉じることができます。

  1. サーバー接続の確立

クライアント接続の確立とは異なり、socket() 関数と binding() 関数を使用してサーバー上で TCP 接続を確立できます。表示:

$server_sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
socket_bind($server_sock, '127.0.0.1', 8888);
socket_listen($server_sock, 5);
while (true) {
    $client_sock = socket_accept($server_sock);
    echo "Client Connected
";
    $input = socket_read($client_sock, 1024);
    $output = "Server Response";
    socket_write($client_sock, $output, strlen($output));
    socket_close($client_sock);
}
socket_close($server_sock);

上記のコードでは、最初にsocket_create()関数を使用してTCPソケットを作成します。パラメータはAF_INET、SOCK_STREAM、SOL_TCPで、それぞれIPv4、ストリーミングソケット、TCPを表します。プロトコル。次に、socket_bind() 関数を使用して、指定された IP アドレスの指定されたポート番号に TCP ソケットをバインドし、socket_listen() 関数を使用してクライアント接続の待機を開始します。

while ループでは、socket_accept() 関数を使用してクライアントの接続を受信し、socket_read() 関数を使用してクライアントによって送信されたデータを読み取ります。次に、socket_write() 関数を使用してサーバーの応答をクライアントに送信し、最後にソケット_close() 関数を使用して TCP 接続を閉じます。

3. 概要

この記事では、TCP/IP プログラミングの基本知識と、TCP/IP プログラミングに PHP を使用する方法を紹介します。サンプル コードを通して、PHP での TCP/IP プログラミングが非常に簡単で、ネットワーク通信と Web アプリケーションの動作原理をより深く理解するのに役立つことがわかります。一緒に TCP/IP プログラミングのスキルを習得し、より効率的で信頼性の高いネットワーク アプリケーションを開発しましょう。

以上がPHP 初心者ガイド: TCP/IP プログラミングの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。