博文
[转帖]php socket技术研究(2006-07-10 15:58:00)
摘要:下文是转自其他网站的资料,非原创,如果您觉得有侵犯您的个人权利请尽快联系blog主人删除
今天试着写一个 PHP 与 C 语言通过socket通讯的程序,看过PHP手册,发现有好几种方式可以建立socket 客户端.
1、通过 fsockopen() 建立socket连接,然后用 用fputs() 发送消息,用 fgets() 接收消息。
2、通过 socket_create() 建立 socket 连接,然后用 socket_send() or socket_write() 发送消息,用 socket_recv() or socket_read() 发送消息。
很奇怪,我在手册上看到了这样一段话"本扩展模块是实验性的。该模块的行为,包括其函数的名称以及其它任何关于此模块的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。我们提醒您在使用本扩展模块的同时自担风险。" 看来 php4.0 socket通讯还不是完全稳定。
今天我写的客户端要与服务端做两次通讯,我用上面这个方法都写了一个客户端程序,发现当仅仅就一次通讯的时候,也就是PHP客户端发送一次消息,然后接收返回消息,就关闭连接。这两种方法都能正确快速的实现功能,但当做两次通讯时,却有明显的差别,第一种方法第一次通讯特别快就结束了,这个我可以通过服务端的输出看出来,但是第二次通讯要等上好几分钟才能结束,我试了好几次都这样,我不太清楚我的程序哪里出错了,还是这个方式连接就是有问题,但是第二种方法做这两次通讯却很快,正确!完成的非常的。
最后我根据 第二种情况写了一个 class
////////////////////////////// File Description //////////////////////////////////////////// Class Name : socket// Version : V1.0//......
[创亿无限]城市规划随想(2006-07-03 19:37:00)
摘要:今天去市区坐公交浪费了我不少电话钱
为什么呢?
因为我不知道该坐几路车还有转车什么的,周围没人问,朋友又去外地了,所以就打114号码百事通,半天才弄清楚
由此我联想到我前几回坐公交也是如此
同时在一个大城市,比如我在杭州,就算是老市民,恐怕也无法完全搞清楚公交线路
现在杭州市有个短信服务是发短信到个什么地方
可以查询两个站之间的公交线路
但我想,绝大多数的人只知道想去哪个地方,而不知道那个地方是什么站
一般的思路是这样
先乘公交到你要去的目标所在的小区,然后再慢慢找
但问题又来,这些个小区可能会有重复的,而且从名字上没办法得到任何其他的信息
我提出的解决办法是
对整个城市进行细分,建立各个小区
这只是地理上的标识,不干行政的事
每个小区有他唯一的号码,这个有点象邮政编码
但又不同于邮政编码
因为这个号码的制定原则是以方位为参照
在一个城市中找一个中心标志物,以这个标志物为参照
根据他的东 南 西 北这几个正方位和另外四个偏方位给予1,2,3,4,5,6,7,8这8个开头数字
比如所有位于南方的小区其标志号前肯定是2
再接下来又在8个大方位里依照前面的方法再选二级参照物
再分8个方
相邻的小区间号码相连,同环路的小区的某个标志位肯定相同
外环的那个标志位比内环的大
规则就这么点
既明了又简单
末了还要说下
要把这个号码贴得到处都是
到处都知道
使住在那个区的人大部分都知道该区的划分号
最好连邮件都可以根据这个号来投递......
爸爸父亲节快乐!!!(2006-06-18 13:29:00)
摘要:愿全天下的老年父亲,中年父亲,青年父亲尤其是我的父亲节日快乐
尽管停止更新日志,但还是忍不住要上来说说......
[创亿无限]简单聊天程序通信协议草案(2006-06-11 07:22:00)
摘要:准备要在暑假里把东西做出来.所以先制定个协议起
简单聊天程序[命名为:自由聊天----Free Chat!]通信协议第一次草案--------------------------------------------协议大概:
一,数据头:2字节
fc --------->free chat
二,数据类型:
01: 点对点聊天内容02: 群聊内容03: 私人操作命令[对某号码的一系列操作]04: 群操作命令[向某群操作]05: 特殊命令[特殊功能的命令]
为了可扩展目的使用2字节
三,数据长度:
使用4字节表达2的31次方也就是最大能容下2GB左右[实际肯定用不到这么多吧,只是为了防止万一]
所以数据长度等于传递信息长度M字节加上前面的这些一共是8字节
四,数据内容:
考虑用2进制形式,主要为通用目的,ascii怕有问题
--------------------------------------------协议细分:
一,私人操作命令:
1,希望与某某聊天格式:|---sr---|---lt---| 总4字节2+22,拒绝某某的信息,并将该状态通知对方(不通知的自然就不用通过网络发信息了)格式:|---sr---|---jj---| 总4字节2+2
二,群操作命令:1,希望加入群聊格式:|---ql---|---jr---| 总4字节2+22,拒绝加入请求[适用于那种设定为需要审核的聊天室]格式:|---ql---|---bx---| 总4字节2+23,总机通知下级主机t将某某t出聊天序列格式:|---ql---|---tc---|---某某id---| 总8字节2+2+44,总机通知下级主机自己退出聊天序列格式:|---ql---|---wt---|---继承者id---| 总8字节2+2+4[说明:如果不指定继承者则自......
[创亿无限]ATM利用之初步想法(2006-06-01 05:44:00)
摘要: 银行网点有多少ATM我搞不清楚,总之应该是很大的吧,这么大一个平台不利用起来真是可惜了,其实有的时候只要稍微动点脑筋,就能创造一大笔财富,象那个在电梯口那里装个做广告的公司就是这样,他们的技术含量根本就没有,不过是想到了别人没有想到的地方,当然这首先需要一个平台,单靠一两个电梯口是不行的,需要能统一控制所有的电梯口,而我们今天要说的银行ATM呢,恰好是这样全国大规模控制的平台,这个平台的掌控人就是银联拉
且不去论银联到底有多少台ATM机,在这个问题上纠缠很没有意思,我们考虑下使用ATM的过程
插入卡,出现欢迎屏幕,要求按下继续键才能继续操作
按下继续,进入操作菜单,有各种菜单
选择取钱或者是查询余额,若选择取钱,则下面有一步选择钱,若选择查询余额,则在你查询后返回这一级菜单
我们从这里看到,每次完整的操作,ATM至少更新4次,而最多的话则可能有7次,平均起来一次操作大概ATM屏幕更新5次(因为不是大部分人都在每次取款前查看余额,所以平均数往左边靠)
我在网络上随机找了些人询问他们身边的ATM机一天大概有多少使用次数,其中最多的有2000次,最少的也有400多次,我们取个估计值,按一台ATM机一天使用次数为1000次计算,则一台ATM机一天的屏幕更新次数为5000次,全国如果有1万台ATM机,则总共的全国的ATM机一天的屏幕更新为5000万次,这么庞大的数量,银联为什么不充分利用起来呢?
那么如何来利用呢?
一个简单易行的操作是更换全景式广告,原先ATM机上就有广告,不过那是银联自家的广告,但我们想想,别人既然都跑你这里来取款了,已经是你客户了,还做什么广告呢?当然这可能有一定的成绩,但这个效率太低了.只需要做点简单的调整,就能使全国的ATM机步调统一的显示预置的广告画面,按前面所开数据,全国一天的广告投送量为500......
[创亿无限]关于破解md5的一些补充想法(2006-05-30 05:47:00)
摘要:现而今比较出名的破解方法估计就是那个把所有已经知道的结果收录起来
供用户查询
不过光靠提供服务者自己的机器运算可不行
这个不是基于自私的考虑的,而是因为光靠那一台机器运算能得到的结果会远远小于人们的需求
所以我的想法是对用户查询做一步修改,我们对用户进行按劳分配的原则提供查询服务,毕竟资源没有达到无限多个时不可能按需分配
那么具体如何实施呢?
1,首先服务器提供查询端需要做一个把关程序,对访客进行判断,访客在单位查询里第一次应该是提出查询申请,并且由服务器给他一个按顺序发放的数据交给访客的计算机运算,当然要按照md5的计算规则来计算,其实就是由访客计算机对服务器给的数据进行md5加密
2,访客计算机将获得的数据和加密后的数据一起发往服务器,服务器将其储存在自身的临时数据库里作为非可靠性数据接受查询请求,而此时服务器就可以响应访客提出的查询请求了
我想这样做的好处是明显的
要想给全球各地的用户提供优质的查询服务,无论是资源的储备上还是硬件的建设上都需要花点精力的
前者需要的是大量的运算能力,我想靠自己买的服务器去日夜不停的算即使你有钱也没那效率,而网络可以把单个机器的运算任务分配到连接到网络上的各个单独的计算机上去,平行运算,效率大大提高了
而后者说到底也是为了提高运算能力,现在我们把运算任务分配出去,等于是对服务器做了进一步延伸,让每个查询的计算机都临时当了一回服务器的运算器,这跟硬件建设的效果应该是差不了多少的
至于先运算后查询的机制
这样能保证每次访问都有新数据得出,即使访客需要查询的数据没有查到,他也没服务器贡献了一定的运算能力,如此一来,访客查询得次数越多,服务器的数据越多,访客查询得越快,服务器资源扩张得越快,而这两点又吸引着更多的人前来查询,参与到运算里来
这就是个良性循环
以上就是我关于md5破解的一些补充想法
敬请指教
另:谁知道全国共有几台atm提款机?我需要数据对我的一个想法做论证......
[创亿无限]腾讯的qq秀策略评论(2006-05-28 08:47:00)
摘要:腾讯的qq秀实在是敛财的手段
不过我觉得这个很短视
腾讯的qq秀收钱实在是不利于qq秀推广,而且名目繁多,再一个qq秀到期后衣服被剥去又很难堪,种种手段,实在是让人不堪忍受,而大家之所以还留在qq这里只不过是因为自己认识的还在,qq能收钱不过是借着那独大的地位而已,这样的好运可不会长久,试想如果某日出了另外个聊天工具能跟qq抗衡的话,大家肯定会去选那另外的聊天工具,如果对方使用与腾讯相同的服务却免费,那腾讯的用户流失更是哗哗哗的,你也许会说,到时腾讯也会响应开放免费服务,象开放qq号申请那样,不过请你想想,一个公司越办越大,所需要的维持费用肯定是越来越多的,现在用户都在流失,收入都在减少了,如果要开放免费服务,那公司不知道怎么维持,除非马化腾肯下决心背水一战,借钱也要把仗打下去,但就现在了解的腾讯公司来看,他一向来很保守,所以这种可能也要排除了
那么该如何解决这个问题呢,我给腾讯开三个方子做参考
一,维持收费的政策下对qq秀过期后进行处理,由于qq秀过期后会被剥离,如果衣服裤子什么的一起过期那可真有好看的了,整个人近乎赤裸,虽说是影响用户的形象,实则因为载体为qq,因而影响的是腾讯自己的形象,我给的第一个方子就是当用户qq秀过期后对过期qq秀的剥离处理进行改革,用户不付钱了可以由广告商付钱,近来发现腾讯做广告都做到了视频聊天那个窗口去了
(注:这个方法实在是妙,因为在对方影响还没传过来之前那时,这边的人是盯着视频窗口看的,广告可以被保证投放到位)
聪明到这种地步的腾讯公司难道没想到,qq秀窗口也跟视频窗口一样是个广告资源么?当然怎么利用其做广告方法多种多样,我只想出两个,一个是对用户原有的qq秀进行剥离,换上官方承接的广告商的广告服,象衣服完全可以找李宁,耐克做广告嘛;另一个方法是不对用户的qq秀进行剥离,但是在用户的qq秀形象上加一层广告标志,这个广告层应该在qq秀层前面,这样就能突出广告,至于说找哪些广告商,我想最近腾讯的盟友可口可乐公司一定十分愿意在几亿中国人民的眼前展现他们的那个经典标志的,当然如果腾讯接百事这个可口的老对手的单子的话,似乎可以利用此要挟可口给予腾讯在合作中更大的优惠,呵呵,笑谈而已,仅作参考。
二,前面的方子似乎有霸道嫌疑,所以这里开出第二个方子:对qq的收费进行整理划分版块,把qq秀收费项目进行合并,象qq会员那样包月,每......
[创亿无限]网络炒作公司(2006-05-24 14:33:00)
摘要:时下想出名想扩大影响的人太多了
而那些不愿意出去工作的人也太多了
所以我想可以由某几个人出头成立个网络炒作公司,专门给人做炒作的事
当然这个是指我的非正常渠道炒作方式
针对的用户是那些付不起巨额炒作费的中小公司
使用的手段是我曾经介绍过的各种方法
由于我介绍的方法有许多比较有效果的是需要大量人力去办的
而且对人没有要求,只要你会上网就行
也就适应了那些不愿意出去工作的人的要求了
当然这只是个点子,至于说成败那要看个人的能力与机遇了......
[创亿无限]利用pc2n打造你的影音基地(2006-05-16 03:40:00)
摘要:前几期有文章介绍了关于免费的2g硬盘pc2n的情况,他给人的印象恐怕就是那仿windows的界面跟他那2g的容量。最近有增加了个功能就是文件对外提供下载,没有什么其他硬盘的提取码什么的,是直接下载的,
呵呵,不过上传的速度似乎嫌慢,所以这么大的空间似乎浪费了,不过大家别急,这么大的空间我们可以把他打造成我们的影音基地,(说到这里,笔者有必要说说,为什么我了解他们,其实很简单,他们曾经来找我给他们做过个推广草案,所以我平时很关注他们的动态,他们给我的推广地址是http://www1.pc2n.com/index/register.jsp?from=1,知道了不?我是一号)用一般的方法上传影音文件是行不通的,不信你试试,你一传个mp3文件他就会出这个对话筐
换另外一些主流格式都不行,这可怎么办呢,呵呵,不用着急,笔者前些天通宵时无意发现原来pc2n的硬盘对rm格式的流媒体文件是放行的,更重要的是,还支持在线播放,这个下面再说,不但如此,rm格式的流媒体文件上传速度奇快,基本上相当于播放速度,不,比播放速度快一倍半,大概是300到400kb每秒,真是奇怪,这里我们也就不去探讨为什么,反正能用就好,不过问题又来了,rm格式虽然也算一种有名的格式,但网络上的rm资源却没有其他的多,这个你到mo3.baidu.com去搜索下就看得出来了,许多资源都没有rm格式的,那怎么办呢?有办法,我们请出格式转换工具
RM压缩转换王(这可是本人花了整个通宵才找到的能用的,虽然中间也干了别事),它可以把其他格式的媒体文件转换成rm格式的,并且能根本需要进行不同比例的压缩,下面讲讲如何使用,当然你先要下载资源文件象mp3格式的,还要下载rm压缩转换王的安装程序,下载文件,按照提示安装,安装好会要你重启,不必理他,不重启根本不影响使用,双击打开程序,界面如图
,我们在选择文件那里点“添加”浏览到你要转换格式的mp3文件(其他格式也可以的)然后在保存为的后面点“浏览”选择需要保存的文件夹以及文件名,这里在下拉框选择”realplayer格式(*.rm)”,最后我们在选择压缩比那里选择一个合适的压缩比例,这个请按照各人需要来选择,我选225kbps,好,可以点开始按纽开始转换了,下面的进度会提示你转换的进行程度,好,过了20来秒吧,格式转换好了,我们得到了一个rm格式的资源文件,好拉,这下我们......
