php中socket的使用
2015-04-16 15:35
155 查看
一、开启socket
phpinfo();查看是否开启了socket扩展,否则在php.ini中开启。
二、服务器端代码的写法
服务器端需要在cli模式是执行,有可能cli模式下php.ini文件载入的不一样
可以像如下输出
这时候在zhoxh目录下就有个tem.text文件。查看ConfigurationFile(php.ini)Path=>C:\WINDOWS。不是我的php.ini文件,这说明调用的php.ini文件时错误的。这时候我们要指定php.ini文件命令如下
注意的是我的php可以直接执行时配置了环境变量。
三、客户端
client:
phpinfo();查看是否开启了socket扩展,否则在php.ini中开启。
二、服务器端代码的写法
<?php error_reporting(E_ALL); set_time_limit(0); //ob_implicit_flush(); $address='127.0.0.1'; $port=10005; //创建端口 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,5)===false){ echo"socket_bind()failed:reason:".socket_strerror(socket_last_error($sock))."\n"; } do{ //得到一个链接 if(($msgsock=socket_accept($sock))===false){ echo"socket_accepty()failed:reason:".socket_strerror(socket_last_error($sock))."\n"; break; } //welcome发送到客户端 $msg="<fontcolor='red'>serversend:welcome</font><br/>"; socket_write($msgsock,$msg,strlen($msg)); echo'readclientmessage\n'; $buf=socket_read($msgsock,8192); $talkback="receivedmessage:$buf\n"; echo$talkback; if(false===socket_write($msgsock,$talkback,strlen($talkback))){ echo"socket_write()failedreason:".socket_strerror(socket_last_error($sock))."\n"; }else{ echo'sendsuccess'; } socket_close($msgsock); }while(true); //关闭socket socket_close($sock); ?>
服务器端需要在cli模式是执行,有可能cli模式下php.ini文件载入的不一样
可以像如下输出
这时候在zhoxh目录下就有个tem.text文件。查看ConfigurationFile(php.ini)Path=>C:\WINDOWS。不是我的php.ini文件,这说明调用的php.ini文件时错误的。这时候我们要指定php.ini文件命令如下
注意的是我的php可以直接执行时配置了环境变量。
三、客户端
<?php //error_reporting(E_ALL);echo"<h2>tcp/ipconnection</h2>\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"Attemptingtoconnectto'$address'onport'$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.1\r\n"; $in.="HOST:localhost\r\n"; $in.="Connection:close\r\n\r\n"; $out=""; echo"sendinghttpheadrequest..."; socket_write($ socket,$in, strlen($in)); echo"OK\n"; echo"Readingresponse:\n\n"; while($out=socket_read($ socket,8192)){ echo$out; } echo"closeingsocket.."; socket_close($ socket); echo"ok.\n\n";
执行结果:
server:
client:
相关文章推荐
- 使用Pear和php socket来实现通过smtp验证发送邮件
- 使用php通过Socket进行发信源码,支持发信认证
- 使用PHP的Socket写的POP3类
- 使用socket实现文件传输[PHP CLI]
- PHP中以SOCKET方式发送HTTP请求的函数及使用方法
- C#使用SOCKET获取ASPSESSIONID、PHPSESSID等Cookie
- php中socket的使用
- PHP使用Socket发送字节流
- 使用php-simple-html-dom-parser遇到的create_debugger_socket("localhost", 9000) socket: Too many open files
- PHP Socket编程 之使用fsockopen()函数
- PHP socket 编程之使用ip进行地址查询
- PHP socket网络编程之使用curl
- 使用socket方式连接Nginx优化php-fpm性能
- php使用socket post数据到其它web服务器的方法
- php使用socket post数据到其它web服务器的方法
- PHP中使用socket方式GET、POST数据实例
- nginx 和 php-fpm 通信使用unix socket还是TCP,及其配置
- php中socket的使用 方法简介
- 使用php的socket发送tcp请求