关于OICQ的实现问题!(我所能给的最高分了)

NetMan1999 2000-09-08 10:31:00
有关于vb实现OICQ的讨论已经很多,但是我认为现在的OICQ能支持几十万用户在线,能否有人告诉我实现如此高性能的OICQ的机理是什么呢?我想恐怕只用VB不能解决吧!
谢谢!
...全文
370 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
NetMan1999 2000-10-08
  • 打赏
  • 举报
回复
多谢大家,才出差回来,分给晚了一点!呵呵。。
元明 2000-09-22
  • 打赏
  • 举报
回复
ppc207给我也寄一份到icelan@163.net
NiceFeather 2000-09-22
  • 打赏
  • 举报
回复
to flywhc:
欢迎你去回答http://expert.csdn.net/TopicView.asp?id=29333的问题,高分等你拿!
ppc207 2000-09-22
  • 打赏
  • 举报
回复
我有icq的通讯协议,有兴趣来信吧,看后定会有启发。
pc_207@263.net
flywhc 2000-09-11
  • 打赏
  • 举报
回复
哈哈,恰好我刚做好一套ICQ系统 -- 是给公司做的。服务器和客户端都是VB6的。
当然我担心服务器撑不住大用户,正用VC重做。但目前是用的非阻塞模式,甚至多线程都没用,
全靠ACTIVEX事件驱动 -- 它本身就多线程了,无论是数据库操作还是网络几乎都能立即返回,速度照样很快。
基本原理上是全部使用UDP协议,这样就能轻易的解决代理服务器的问题。
但UDP协议很不稳定,必须加重包和丢包、错包校验。
服务器端UDP端口固定为8000,客户端随机分配,服务器端必须保存登陆用户的IP&PORT
甚至我连传输文件都用UDP协议,自己做的快速校验和自动续传程序,速度反而比OICQ的TCP快了,而且再也不需要设置什么SOCK5了 :)
而且这样的好处是节省端口资源 -- 无论是C还是S,都只用一个UDP端口!
VB的缺点是没有结构体联合体,我用TYPE语句和一个未公开的RlfMoveMemory实现那些复杂的自定义协议,把文件传输、注册、消息等等都统一成一种数据格式发送。当然还有一些细节,比如消除UNICODE转换造成的尾部乱码。

客户端的最大难点大概就是界面了,ACTIVEBAR可以做出来,但我不用 -- 我自己做的用户控件,
因为ACTIVEBAR不稳定而且有版权问题。自己做的控件更灵活更快速,而且还是纯VB代码!
也不过就是动态按钮和明暗线的组合,以及一个时钟(滑动翻页用)。
客户端做出来十几个窗体文件 :P
唯一使用的第三方控件是POWERTCP,代替MSWINSOCK,因为微软的MSWINSOCK实在太差了,我差点想用API实现winsock……
gameboy999 2000-09-10
  • 打赏
  • 举报
回复
oicq的客户端其实不就是用delphi写的吗?
不过用vb其实也可以实现,只是可用的控件太少了.
shines77 2000-09-10
  • 打赏
  • 举报
回复
不仅仅服务器端不要用VB写,客户端也不要用VB写。

playpcgame的说法相当准确。而且服务器对于网与网之间的处理是有区别的,比如163-169, 169-163。

如此的技巧还有一些。你注意观察一下OICQ,或者用一些OICQ工具一样可以检测,(OICQ UDP三秒发送一次信息,如果处理169的问题),祝你好运。

因为如果双方都是163的时候是可以直接发的,169与163之间的信息有一半是需要服务器中转的。
U皮特U 2000-09-10
  • 打赏
  • 举报
回复
icq分为服务器端和客户端,支持海量客户的功能是服务器的事情。VB只能用来实现客户端程序,一般也就同时和几个人通讯。
服务器端程序绝对不会是用VB写的。playpcgame的说法是对的,webmail也是采用这种技术。
shines77 2000-09-09
  • 打赏
  • 举报
回复
NetMan1999: 我的ICQ是VB做的,当然现在只是界面而已,没有太多时间去做。
playpcgame 2000-09-08
  • 打赏
  • 举报
回复
我认为OICQ是使用了负载均衡的技术,就是用多台服务器分担用户。这样的话每台服务器所承受的用户数目就可以大大的降低。
大型的网站也是采用这种技术的。
shines77 2000-09-08
  • 打赏
  • 举报
回复
我做了个OICQ的界面,欢迎到 http://shines.yeah.net 参观,关于OICQ的讨论我很感兴趣,我知道一些,但不知道能不能保证几十万人,我用Winsock API的UDP协议和少量TCP/IP结合。

7,759

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧