扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
头部加上超时控制,但对于很多服务器无效,因为服务器输出超时很多在服务器控制,所以建议用cmd脚本方式运行此程序:
目前成都创新互联已为上千多家的企业提供了网站建设、域名、网站空间、网站托管维护、企业网站设计、开原网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
?php
set_time_limit(0); //禁用脚本超时
// Create the socket and connect
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'116。236。128。220', 14580);
// Write some test data to our socket
if(!socket_write($socket, "user NoCall pass -1 vers test 1.0 filter b/B* \r\n"))
{
echo("pWrite failed/p");
}
if(!file_exists('socket_log.html')){
file_put_contents('socket_log.html', 'script
var xx = setInterval(function(){ //每5秒刷新一次页面
window.location.reload();
}, 5000);
/script');
}
// Read any response from the socket
while($buffer = socket_read($socket, 64, PHP_NORMAL_READ))
{
echo json_encode($buffer); //转换为json数据输出
//记入文件
file_put_contents('socket_log.html', json_encode($buffer), FILE_APPEND);
}
echo("pDone Reading from Socket/p");
使用方法:用命令行方式运行此脚本
php script.php
脚本会一直运行到接收数据结束,并持续将收到的数据写入socket_log.html文件。
在浏览器打开socket_log.html页面,此页面会自动每5秒刷新一次,来显示最新的数据。
确保程序有权限创建及写入socket_log.html文件
当然是在服务器端,但不是保存在内存中,而是保存在文件或数据库中。
默认情况下,php.ini
中设置的
SESSION
保存方式是
files(session.save_handler
=
files),即使用读写文件的方式保存
SESSION
数据,而
SESSION
文件保存的目录由
session.save_path
指定,文件名以
sess_
为前缀,后跟
SESSION
ID,如:sess_c72665af28a8b14c0fe11afe3b59b51b。文件中的数据即是序列化之后的
SESSION
数据了。
如果访问量大,可能产生的
SESSION
文件会比较多,这时可以设置分级目录进行
SESSION
文件的保存,效率会提高很多,设置方法
为:session.save_path="N;/save_path",N
为分级的级数,save_path
为开始目录。
当写入
SESSION
数据的时候,PHP
会获取到客户端的
SESSION_ID,然后根据这个
SESSION
ID
到指定的
SESSION
文件保存目录中找到相应的
SESSION
文件,不存在则创建之,最后将数据序列化之后写入文件。读取
SESSION
数据是也是类似的操作流程,对读出来的数据需要进行解序列化,生成相应的
SESSION
变量。
需要转义一下。有几个办法:
1,最简单,把一些危险字符过滤掉,比如英文的单引号,双引号等;
2,使用addslashes在php中进行转义,自己处理;
3,可以使用一些现成的处理方法,比如uchome自带的getstr。这样的好处就是对各种可能出现的情况处理比较好。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流