服务端:<?php $socket = stream_socket_server('tcp://127.0.0.1:8888', $errno, $errstr); while ($conn = stream_socket_accept($socket)) {     fwrite($conn, "1024");  
当我用ab进行对php socket代码进行并发测试出现问题,经过排查是我直接对客户端进行发送消息,没有先读取客户端消息造成的。    $text = "hello world" . PHP_EOL; fwrite($conn, $text); fclose($conn);修改为//读取client发送的信息 $client_msg = fread($conn
stream_socket_accept  $peername参数将对应客户端的地址和端口输出:$conn = stream_socket_accept($socket,0,$peerName);127.0.0.1:57034输出连接的客户端的ip和端口而stream_socket_get_name同时支持获取当前服务器/客户端的ip和端口stream_socket_get_name($conn,false) //获取的是服务端ip和端口 stream_
编写socket服务检测是否有新连接加入都要使用stream_socket_accept和socket_accept来获取,但是默认是阻塞的,想要更换为非阻塞并不能用stream_set_blocking($socket, false),因为stream_set_blocking只是设置socket的读写不阻塞,针对的类似于fread/fwrite系列。如果需要对stream_socket_accept设置非阻塞,只需要设置超时时间为0即可。while (true) {  
假如我们使用curl请求一个网站,如果这个网站域名在本地host中也存在,curl默认会请求本地,但是我们可以自己设置解析到哪个ip。(1).设置朋友的博客网站主机和ip,请求测试正确返回远程网站内容<?php $ip = '47.106.110.119'; $host = 'www.php20.cn'; $ch = curl_init(); curl_setopt($ch,&nbs
有时候我们拿到一个PHP数组变量,想要将这个数组的代码结构复制出来方便调试可以使用,直接将输出结果复制作为定义数组的代码。经常用,但是记不住,我们专门留在博客方便自己查询。<?php $data = [ 'id'=>10001, 'name'=>'GaoJiuFeng' ]; var_export($data);输出结果:array (   'id&
本人在windows下创建多进程的研究,唯一缺点,主进程所在终端关闭则所有子进程全部关闭。原理是通过proc_open创建多进程,通过环境变量识别父子进程,还能通过proc_open进行父子进程通信<?php namespace EasyTask; use \Exception as Exception; /**  * Class Wpc  * @package EasyT
<?php function getStartFile() {     $backtrace = \debug_backtrace();     if($backtrace)     {      return $backtrace[count($backtrace)-1][&
sqlsrv扩展是php操作SQL Server的驱动下载地址:http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx下载完成后打开解压到指定目录,找到对应php版本的扩展,记得下载nts版本的。下载完扩展后,然后复制指定的dll文件到对应php版本的ext目录,如图:注:如果只使用pdo,只安装pdo_sqlsrv的扩展即可。然后,编辑对应的php.ini文件,增加extension,如图:注:图示为php7.2版本,低版本php的php
Top