Home >Backend Development >PHP Tutorial >Detailed explanation of the usage of socket in php, detailed explanation of phpsocket_PHP tutorial

Detailed explanation of the usage of socket in php, detailed explanation of phpsocket_PHP tutorial

WBOY
WBOYOriginal
2016-07-13 10:16:011026browse

Detailed explanation of the usage of socket in php, detailed explanation of phpsocket

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

Copy code The code is as follows:
error_reporting(E_ALL);
set_time_limit(0);
//ob_implicit_flush();

$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

Copy code The code is as follows:
//error_reporting(E_ALL);
echo "

tcp/ip connection

n";
$service_port = 10005;
$address = '127.0.0.1';

$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";



The execution results are as follows:
server:

client:

I hope this article will be helpful to everyone’s PHP programming design.

What is the main role of socket in php? What is it used for?

Generally used to interact with the server, transmitting data and the like!

PHP socket programming is often used in projects

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.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/899064.htmlTechArticleDetailed explanation of the usage of socket in php, phpsocket detailed explanation The example in this article describes the usage of socket in php in detail, share it with everyone For everyone’s reference. The specific usage is as follows: 1. Open socket phpinfo()...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn