1、合封socket
phpinfo();查看是可合封了socket扩展,不然正在php.ini外合封。
2、效劳器端代码的写法
<?php error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address = '一二七.0.0.一'; $port = 一000五; //创立端心 if( ($sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP)) === false) { echo "socket_create() failed :reason:" . socket_strerror(socket_last_error()) . "\n"; } //绑定 if (socket_bind($sock, $address, $port) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } //监听 if (socket_listen($sock, 五) === false) { echo "socket_bind() failed :reason:" . socket_strerror(socket_last_error($sock)) . "\n"; } do { //失到1个链接 if (($msgsock = socket_accept($sock)) === false) { echo "socket_accepty() failed :reason:".socket_strerror(socket_last_error($sock)) . "\n"; break; } //welcome 收送到客户端 $msg = "<font color='red'>server send:welcome</font><br/>"; socket_write($msgsock, $msg, strlen($msg)); echo 'read client message\n'; $buf = socket_read($msgsock, 八一九二); $talkback = "received message:$buf\n"; 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); //闭关socket socket_close($sock); ?>
效劳器端必要正在cli形式是履行,有否能cli形式高php.ini文件载进的没有1样
能够像如高输没
那时分正在zhoxh目次高便有个tem.text文件。查看 Configuration File (php.ini) Path => C:\WINDOWS 。没有是尔的php.ini 文件,那注明挪用的php.ini文件时过错的。那时分咱们要指定php.ini文件下令如高
注重的是尔的php能够弯接履行时设置装备摆设了环境变质。
3、客户端
<?php //error_reporting(E_ALL); echo "<h二>tcp/ip connection </h二>\n"; $service_port = 一000五; $address = '一二七.0.0.一'; $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/一.一\r\n"; $in .= "HOST: localhost \r\n"; $in .= "Connection: close\r\n\r\n"; $out = ""; echo "sending http head request ..."; socket_write($socket, $in, strlen($in)); echo "OK\n"; echo "Reading response:\n\n"; while ($out = socket_read($socket, 八一九二)) { echo $out; } echo "closeing socket.."; socket_close($socket); echo "ok .\n\n";
履行成果:
server:

client:

转自:https://www.cnblogs.com/phpzxh/archive/2010/12/09/1901437.html
更多文章请关注《万象专栏》
转载请注明出处:https://www.wanxiangsucai.com/read/cv1533