顺便mail给我一份,谢谢:)
[email protected]

解决方案 »

  1.   

    PHP不适合做QQ吧,即使做也和OICQ的原理上有差异,PHP做数据库没问题,但是做GUI感觉就不好了,另外UDP/TCP也是问题。现在PHP做的社区的消息发送到是多见,但是把那种技术用来做QQ效率会很低,会出现过多与服务器不必要的交流
      

  2.   

    有没有只需要HTTP就能够提供及时通讯的工具,我们这里的网管很严,QQ根本不能用,我的想法是利用一个外部网站做一个和QQ类似的东西
      

  3.   

    HTTP?
    :),CSDN就是,论坛,聊天室都是HTTP‘即时’通讯工具了,如果你要用这个做个象QQ的东西,原理也和他们差不多了
      

  4.   

    有人有PHP的源代码么?愿意高分相赠(2000分)
      

  5.   

    大哥!
    你懂不懂tcp\ip啊!~~~
    倒~~~
    要是真的有人用php编了一个qq
    我就服了you
      

  6.   

    为什么不行,我就在编写,用php的socket通讯,难度还是有的
      

  7.   

    我正在准备改用http方式,每3秒钟刷新一次,对于局域网是十分可行的,对于广域网,需要考虑降低刷新频率,
      

  8.   

    快狗不是用php做的,是asp1!
    你在络枷网(武汉大学的一个网站上)可以看到php做的聊天器
    在http://www.scuec.edu.cn上也可以看到有一个很简陋的聊天器
    (呵呵,对不起是我做的)
      

  9.   

    罗加网的网址是www.luojia.net
    当时我想加盟的,不过没去,我们班同学去了
      

  10.   

    我初出道的时候曾经做过一个类似的,当然效果没qq那么好
    思路是,在一个主页面中有一小块隐藏的刷新区域,不停调用一个服务器php文件,服务器上的php文件发送一个javascript,这个javascript在某个情况下(即当收到消息时)弹出一个窗体显示内容。发送的消息记录在数据库里,php文件每次检查数据库看是否有需要发送的消息,然后定制javascript,我的源代码还在,但是因为当时太嫩,数据库结构没有保留
      

  11.   

    用网页来做即时通讯不是很多了吗?
    管他是用asp还是php还是jsp,能实现就行了。
    说实在话,我是觉得php还是挺好的
      

  12.   

    这样的网页我见过。界面和QQ很相似。
    WDB中的短信息功能基本上就可以实现这样的功能。
      

  13.   

    我有一个flash+php的,0.10版,,,,,谁要????
      

  14.   

    我要,多谢!
    [email protected]
      

  15.   

    不记得了!
    {落伍者}是http://im286.dtsky.com/
    这个帖子好像置顶了
      

  16.   

    to:xinxin1982 也给我一份![email protected]
      

  17.   

    这个怎么样呀
    http://simple.nyist.net/serve/pager/login.php3
      

  18.   

    我想要个来学习[email protected]
    谢谢!
      

  19.   

    唉,csdn是越来越锉了
    尽是些要这要那的人,我最讨厌这种人~
    不能自己去编一个吗!(像你们说的那些个“oicq”)~~~
    像你们说的那些哪是什么oicq啊,只是模仿一个界面而已
    一群什么也不懂的人,就会瞎起哄。
      

  20.   

    www.dev-club.com的php版的精华区有
      

  21.   

    谈点拙见:),万万别当我是高手
    虽然以前做过PHP的项目,但是没有用到过PHP里面的socket相关函数,再就是对PHP的socket也没有什么研究,因为PHP作为一门服务器端的脚本,从其自身语言特点,用户群和应用范围来讲,基本上定位为了小中型网站的快速开发工具,浏览器几乎成为它不可以改变的客户端,所以基本上都是走的HTTP,这样一来,决定了PHP不太适合做为开发类似QQ这样的网络通讯软件的解决方案。
    恰巧我最近在做和QQ类似的软件,用的开发工具是JAVA,选的理由是java有很COOL的GUI(swing),也有很方便的用于网络底层通讯的类库来解决tcp/ip,udp的问题,再就是我的JAVA也处于学习阶段,正好当是练个手。在参考了大量书籍和网络上的文章后,我开始分析QQ的设计思路,重最初的用户注册开始进行分析。思维一点一点地挖掘,目前这个软件写了2周,还没有完成,不过用户的注册,查找,好友添加,收发消息均已做完,感觉设计思路,解决方案和QQ多少还是有些差别。下面说说我的一些分析,说的不好各位就当是灌水了:)从总体上来说,QQ分为客户端和服务器端两套不同的程序,而我们通常使用的当然是QQ的客户端了,客户端是独立的应用程序,它和服务器的交互采用的是TCP/IP,但它和服务器很少进行交互,只有在必要的时候,比如上线,查询好友,添加好友等,而平时我们和好友通讯用的是点对点,无连接和面向消息的UDP协议。这样做大大减轻了服务器的负担。服务器上的程序一直都在某个端口监听是否有消息从客户发来,为了保证即时处理客户消息,它一但监听到消息后,会把这个消息作为参数,传递给一个专门处理消息的Thread扩展类来处理,比如,如果这个消息是上线,就连接数据库将此用户的状态改为在线,如果是查询目前在线的好友,那么就查询后台数据库,并向客户返回结果。在你上线的时候,有两个参数显地十分重要,你的IP地址,和你的QQ的端口(一般PORT都是固定或相同的),而且这两个参数需要记录在数据库的用户信息表中一直跟随你,直到你下线或重新登陆改变了IP。因为用户和用户是UDP方式通讯,而这两个参数是必须需要的。设想我们刚打开自己的QQ吧,这样说比较自然一点:打开QQ,出来登陆提示框,填上我们的用户名和密码,服务器在监听到这个请求后会判断是否正确并返回,如果正确,服务器会检索添加你为好友的那些用户并向他们发送你登陆的消息。现在我们登陆了,首先我们应该得到自己的好友列表,大家还记得以前很早用QQ的时候吗,登陆花的时间比较长,有个对话窗口说的是正在获取好友资料,弄不好还
    会登陆超时,其实就是这一步了。现在的QQ有了改变,只要你在某台机器上登陆过一次,它会在安装目录下为你建立一个用户目录,把你的好友资料以文件加密的形式记录在文件里,而是第一次在某机器上登陆,服务器也会快速地返回好友非常少的资料(如IP,在线状态),所以你会看到他们的头像全是默认的企鹅,用户名只有个号码,至于其他的详细资料,以多线程向服务器获取和更新。好了,反正现在你在线的好友都知道了他们的IP和PORT,这是跟随他们的其他资料一并传回的,你已经可以给他发送消息了(一个UDP数据包),
    而服务器在告诉他们你登陆的时候,自然也把你的IP和PORT告诉了他们。
    哎~~~累了,不好意思,写地没头没尾的
    总结一下,JAVA用来做QQ,不是最好的,用户界面方面,它起码就没有VC好,但是它的有比HTML丰富地多的图形组件,可作为应用程序运行于客户端,完全脱离浏览器。而且,它有着
    易于进行网络开发的java.net.*包,完全可以解决QQ所涉及到的网络编程问题。我想看过此帖的朋友可能会问我为什么没有提到QQ的短消息功能,其实短消息编程并不难,只要你能和
    电信合作,很多后端的东西都是自动完成,不需要我们操心。其实我也没有做过,大家可
    以参考一下这个帖子http://www.csdn.net/expert/topic/422/422769.shtm,里面有台
    湾王森老师关于这个问题的答复。另外关于QQ的实现,大家可以到其他版块去搜索一下,
    反正我在VC版和JAVA版都有看到过,很多发言还是很有借鉴性的。
    好了~~~~欢迎指正很交流
      

  22.   

    我以前也有做过这些
    到后来发现做一个qq的功能的东西不是很难的
    但是想到他的多线程与进程(他的数据库算法)实在感觉可怕
    (其实,我到现在也没有想通他是怎么实现的)
    说的再明白一点就是:他是怎么实现几十万的在线用户转发他们的udp包的,而且有那么高的效率(是我到目前为止看过的最高效率的服务器)
    请高手指教!
      

  23.   

    anybody1,你能说地明白点吗?你所指的多线程肯定是指在服务器端,但是我不清楚你说的是哪部分功能。还有你说的几十万用户的UDP包的转发是指什么情况,我觉得这种情况在QQ使用时出现的频率不会太高。腾讯为了应付众多的使用者,除了采用多线程这个最基本的
    手段,肯定也用了服务器的集群来处理客户请求。
    也不敢肯定我的观点都很正确,只是这段时间对这方面所想确实比较多,欢迎交流~~
      

  24.   

    anybody1,你怎么用‘锉’字,感觉你说的是我的家乡话哈,你也是四川人?
      

  25.   


    是我想歪了
    我现在知道了,我真的很矬
    以后csdn上再也不会有anybody1这号人了
    to: xioyoo(xioyoo)服务器的中间键那一层我是想过的(就是你说的“用服务器的集群来处理客户请求。”的方法)我认为可以用二叉数算法吧。不过,我把udp的转发想的太复杂了,走到了误区,所以我觉得我还是很矬的
    让大家见笑了,不好意思!!!