我想知道QQ的原理及简单的实现方法。(200分)

  • 主题发起人 主题发起人 wumeng
  • 开始时间 开始时间
W

wumeng

Unregistered / Unconfirmed
GUEST, unregistred user!
问题是这样的:当录入员输入新的单据后,要即使通知相关我员去看。我的想法是这样的:
只要用户打开了我的程序。比如:A B C D四个用户打开了四个客户端程序,当A录入新的
单据后,要发通知给B C D,我想用QQ的方法实现。别的方法也行,只要能用就给分。
注:我不仅仅是在一个网段内用的。可能在InterNet上用。
有我告诉我说:“在客户端监听某一端口,如果收到特定指令,就提示用户”。
我不知道这个能不能行。。。
最好的给出具体的例子或者是要用什么控件。
 
fastnet
socket
 
fastnet socket 它们可以跨网段吗???
 
就是一个简单的Socket通讯啊,只要IP固定的话,A发送消息给BCD
BCD三个监听,当收到消息后,判断消息的类型(这个需要自己定义一下),然后进行处理
最好BCD收到后给A一个反馈消息,否则A的发送是否成功无法知道。
 
就是一个socket通信的问题啊,
直接用delphi中的serversocket和clientsocket。
应该有一个负责中传的服务器,所有客户端连到这个服务器上。
也可以每个客户端监听端口。
 
用UDP做QQ类的软件最好,资源消耗低
 
小妹对这个一窍不通

不过能给点分吗?
 
>>不过能给点分吗?
这个没问题,如果你没分提问的话,和斑竹说一下,我另开贴子给你分。但不要让别我说
我们作作弊就行了。。。

>>应该有一个负责中传的服务器,所有客户端连到这个服务器上。
>>也可以每个客户端监听端口。
请详细说明一下。。。
 
to jxcy001:

如果你真是PLMM,嘿嘿....大哥哥我可以给分你
 
QQ的方法指的是什么呢?是指UDP通讯么
如果所有的客户端都有真实的IP和端口,是不需要中转服务器,如果是那些通过代理服务器
什么上来的,肯定要中转服务器的,需由客户端主动连接中转服务器.
 
>>QQ的方法指的是什么呢?
我是想实现这样的功能:我现在正在用三层次开发数据库系统。我有中间层的APP SERVER,
我想当我的客户端提交一笔数据时,想提醒别的用户(也就是其它的客户端,但这些
客户端可能不在一个网段内)。我以前没作过类似的程序。也不知道这个功能怎么实现。
希望有经验的朋友给点提示。。。
 
http://powerjet.my169.com/HTML/authority.htm
 
>>powerjet 谢谢。有你50分了。
谁再给点信息呀?!
 

公开OICQ所有通讯协议 --转载
忘记了(对不起)


摘 要:
关键字:OICQ,协议
类 别:网络


公开OICQ所有通讯协议
OICQ服务器系统通讯协议
协议说明:
协议由报文头(T)+发送者(T)+接收者(T)+报文类型(T)+报文长度(L)+报文内容组成
发送者和接收者是系统内的程序种类,OICQ服务器0x01,传真服务器0x02,WEB服务器0x03,打印服务器是0x04,聊天服务器是0x05,OICQ用户是0x0A。

OICQ用户到OICQ服务器的通讯协议 引导符 (0x81+0x0A+0x01)
报文类型 报文内容 报文说明
0x01 昵称(S)+肖像(M)+用户密码(S)+性别(T)+年龄(T)+真实姓名(S)+国家/地区(T)+省(T)+市(S)+地址(S)+邮编(S)+学历(T)+毕业院校(S)+职业(T)+电话(S)+寻呼(S)+电邮(S)+爱好(S)+说明(S)+身份验证(T)新用户注册,身份验证用于当有人要将他加入好友时询问是否允许
0x02 服务号(L)+密码(S)+注册方式(T)老用户注册,方式分为0正常,1隐身
0x03 服务号(L)+对方服务号(L)+内容(S) 发送信息到某人
0x04 服务号(L)+组号(L)+内容(S) 广播信息,组号=0为全体
0x05 服务号(L)+朋友服务号(L) 查看朋友资料
0x06 服务号(L)+组名称(S) 增加组
0x07 服务号(L)+组编号(T)+组名称(S) 修改组名称
0x08 服务号(L)+组编号(T) 删除组
0x09 服务号(L)+移动人数(T)+{朋友服务号(L)+目的组号(T)} 移动组成员
0x0a 服务号(L)+起始编号(L)+回传个数(T)+查找标志(T) 看谁在线上
查找标志 1=向小找 2=向大找
0x0b 服务号(L)+SQL语句(S) 自定义查找
0x0c 服务号(L)+朋友服务号(L) 增加好友
0x0d 服务号(L)+朋友服务号(L)+加入原因(S) 请求加入好友
0x0e 服务号(L)+朋友服务号(L) 删除好友
0x10 服务号(L)+显示模式(T) 更改显示方式 1上线2隐藏3免打扰4离线
0x11 服务号(L)+监视服务号(L) 监视某人谈话
0x12 服务号(L)+昵称(S)+肖像(M)+用户密码(S)+性别(T)+年龄(T)+真实姓名(S)+国家/地区(T)+省(T)+市(S)+地址(S)+邮编(S)+学历(T)+毕业院校(S)+职业(T)+电话(S)+寻呼(S)+电邮(S)+爱好(S)+说明(S)+身份验证(T)更改用户基本信息
0x13 服务号(L)+朋友服务号(L)+文件名(S)+文件长度(L) 请求发送文件
0x14 服务号(L)+朋友服务号(L)+允许/拒绝 是否允许发送文件
0x15 服务号(L)+朋友服务号(L)+文件内容(B) 发送文件
0x16 服务号(L) 连接测试报文
0x17 服务号(L)+朋友服务号(L)+同意标志(T) 应答对方请求加入好友
0=拒绝
1=同意

OICQ服务器到OICQ的通讯协议
报文类型 报文内容 报文说明
0x01 成功/失败(T)+服务号(L) 新用户注册结果返回
0x02 成功/失败(T)+组个数(T)+{组名称(S)+组编号(T)+朋友个数(T)+{朋友服务号(L)+肖像编号(T)+朋友状态(T)+朋友昵称(S)] 老用户注册结果返回
朋友状态
1=上线=2隐藏=3免打扰4离线
0x03 标志(T) + 朋友服务号(L)+信息(S)+信息类型(T) 标志 1=系统 2=用户
发送消息,服务号=0是系统消息
1=用户某某已经把你加为好友
2=用户某某请求你通过身份验证
3=用户某某同意了你的验证要求
4=用户某某拒绝了你的验证请求
0x04 成功/失败(T)+朋友服务号(L)+昵称(S)+肖像(M)+性别(T)+年龄(T)+真实姓名(S)+国家/地区(T)+省(T)+市(S)+地址(S)+邮编(S)+学历(T)+毕业院校(S)+职业(T)+电话(S)+寻呼(S)+电邮(S)+爱好(S)+说明(S)朋友信息回送
0x05 成功/失败(T)+组编号(T)+组名称(S) 增加组结果回送 1/0
0x06 成功/失败(T)+组编号(T)+组名称(S)修改组名称结果回送1/0
0x07 成功/失败(T)+组编号(T) 删除组结果回送1/0
0x08 成功/失败(T) 移动组成员结果回送1/0
0x09 成功/失败(T)+在线个数(T)+{服务号(L)+昵称(S)+肖像(M)+省(T)+市(S)} 查找在线人员结果回送
0x0a 成功/失败(T)+找到个数(T)+{服务号(L)+昵称(S)+肖像(M)+省(T)+市(S)} 自定义查找结果回送(最多50)
0x0b 标志(T)+朋友服务号(L) 增加好友结果回送标志
0=数据库失败
=1成功
=2需要身份验证
=3对方不允许加入
=4需要身份验证且不在线
0x0c 朋友服务号(L)+昵称(S)+肖像号(M)+朋友状态(T) 给在线用户增加好友
0x0e 成功/失败(T)+朋友服务号(L) 删除好友结果回送
0x10 服务号(L)+显示模式(T) 显示模式回送 =1上线=2隐藏=3免打扰4离线
0x11 成功/失败 更改用户基本信息结果回送
0x12 朋友服务号(L)+文件名(S)+文件长度(L) 请求发送文件
0x13 朋友服务号(L)+允许/拒绝 是否允许发送文件 1允许 0拒绝
0x14 朋友服务号(L)+文件内容(B) 发送文件
0x15 朋友服务号(L)+当前状态(T)朋友状态回送(系统发送)=1上线=2隐藏=3免打扰4离线
0x16 服务号(L) 连接测试

投稿人:龙鹰 投稿日期:2001-10-4 1:54:00

 
我有源码,你要吗?
 
>>我有源码,你要吗?
要,请发到:wumengs@sina.com.cn
 
后退
顶部