PHPでサーバソケットプログラミング|サーバー側server.php|クライアントclient.php
phpのソケットの基本的な原則、基本的な使い方:
1.サーバー側:ソケットを作成=>指定されたIPおよびポートにソケットをバインド=>socketのすべてのリンクリクエストをリスナー=>応答またはデータを戻る
2.クライアント側:ソケットを作成=>リクエストされたソケットに接続=>ソケットのデータ送信=>ソケットの応答データを読み取る
3.サーバー側処理プログラム
Server.php
<?php
$host = '192.168.0.10’;
$port = 88888;
if($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)){
echo “socket create success.\n";
}
if($bind = socket_bind($socket, $host, $port)){
echo “socket bind success.\n";
}
if($listen = socket_listen($socket)){
echo “socket listening…\n";
}
if($connect = socket_accept($socket)){
echo “socket accept a connect success.\n";
}
socket_write($connect, 'I am from Server.php at DateTime:’.date('Y-m-d H:i:s’)."\n");
//====================クライアントへ送信=================================================//
$read = socket_read($connect, 1024);
echo $read;
//============クライアントからのメッセージを受け入れる============================//
//while($connect= socket_accept($socket)){
// $read = socket_read($connect, 1024);
// echo $read;
//}
//accept循環
4.クライアント処理プログラム
Client.php
<?php
$host = '192.168.0.10’;
$port = 88888;
if($socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)){
echo “socket create success.\n";
}
socket_connect($socket, $host, $port);
socket_write($socket, 'I am from client.php at DateTime:’.date('Y-m-d H:i:s’)."\n");
//==================サーバーに送信================================================//
$read = socket_read($socket, 1024);
echo $read;
//===============サーバー側の応答データを受け取る========================//