Home >Backend Development >PHP Tutorial >Detailed explanation of the usage of socket in php, detailed explanation of phpsocket_PHP tutorial
The example in this article details the usage of socket in php and shares it with everyone for your reference. The specific usage is as follows:
1. Open socket
phpinfo(); Check whether the socket extension is enabled, otherwise enable it in php.ini.
2. How to write server-side code
$address = '127.0.0.1';
$port = 10005;
//Create port
if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) {
echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "n";
}
//Binding
if (socket_bind($sock, $address, $port) === false) {
echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "n";
}
//Monitor
if (socket_listen($sock, 5) === false) {
echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "n";
}
do {
//Get a link
if (($msgsock = socket_accept($sock)) === false) {
echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "n";
break;
}
//welcome sent to client
$msg = "server send:welcome
";
socket_write($msgsock, $msg, strlen($msg));
echo 'read client messagen';
$buf = socket_read($msgsock, 8192);
$talkback = "received message:$bufn";
echo $talkback;
if (false === socket_write($msgsock, $talkback, strlen($talkback))) {
echo "socket_write() failed reason:" . socket_strerror(socket_last_error($sock)) ."n";
} else {
echo 'send success';
}
socket_close($msgsock);
} while(true);
//Close socket
socket_close($sock);
?>
The server needs to be executed in cli mode. It is possible that the php.ini file is loaded differently in cli mode
can be output as follows:
At this time, there is a tem.text file in the zhoxh directory. Check Configuration File (php.ini) Path => C:WINDOWS . It is not my php.ini file, which means that the php.ini file being called is wrong. At this time we need to specify the php.ini file command as follows
Note that my php can be executed directly with environment variables configured.
3. Client
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
if ($socket === false) {
echo "socket_create() failed: reason: " . socket_strerror(socket_last_error()) . "n";
} else {
echo "OK. n";
}
echo "Attempting to connect to '$address' on port '$service_port'...";
$result = socket_connect($socket, $address, $service_port);
if($result === false) {
echo "socket_connect() failed.nReason: ($result) " . socket_strerror(socket_last_error($socket)) . "n";
} else {
echo "OK n";
}
$in = "HEAD/http/1.1rn";
$in .= "HOST: localhost rn";
$in .= "Connection: closernrn";
$out = "";
echo "sending http head request ...";
socket_write($socket, $in, strlen($in));
echo "OKn";
echo "Reading response:nn";
while ($out = socket_read($socket, 8192)) {
echo $out;
}
echo "closeing socket..";
socket_close($socket);
echo "ok .nn";
client:
I hope this article will be helpful to everyone’s PHP programming design.
Generally used to interact with the server, transmitting data and the like!
Sockets are an underutilized feature in PHP. Today you will see how to generate a server that can use the client connection, and use the socket on the client to connect, and the server will send detailed processing information to the client.
When you see the complete socket process, you will use it in future program development. The server is an HTTP server that allows you to connect, and the client is a web browser. This is a single client/server relationship.