from random import randint
@qqbotslot
def onQQMessage(bot, contact, member, content):
#在这里过滤过来的输入, content的内容是监听qq上所有的输入瞎哗
# 当磨悉行群里有人@你的时候 传入过来的会被转化为[@ME]
# 所以使用 @ME 来过滤其他人在群里面at你
if '@ME' in content:
#四个参数陆冲的详细
#bot : QQBot 对象,提供 List/SendTo/Stop/Restart 四个接口,详见本文档第五节
#contact : QContact 对象,消息的发送者,具有 ctype/qq/uin/nick/mark/card/name 属性,这些属性都是 str 对象
#member : QContact 对象,仅当本消息为 群或讨论组 消息时有效,代表实际发消息的成员
#content : str 对象,消息内容
bot.SendTo(contact,'@'+ member.name+ " 哈哈 ")
#这里是因为部分群里面的at无法转化为[@ME]所以自己过滤at自己的内容
elif '@' in content and '光' in content:
bot.SendTo(contact,'@'+ member.name+ " 哈哈 ")
RunBot()```
这个问题很有意思!我也想了很久。如果大家了解UDP和TCP的区别。很多人会告诉你。TCP协议因为是可靠的!它会验证信息是否发送到目的地。而且TCP连接和断开时都会经过看似漫长3次握手。而UDP因为是不可靠的它没有验证机制更没有什么握手打招呼!我们聊天肯定希望速度越快越好不要有延时,所以有很多人或许会告诉你UDP比TCP快得多!所以QQ用UPD。
这个从理论上讲是对的!但大家忽视了一个客观因素。也就是TCP的验证和3次握手到底能用多少时间,这里可以告诉你最多不会超过0.5秒也就是500毫秒
这个速度玩游戏的人都知道很慢了。如果说0.5秒你觉得我估计少了那么1秒怎么也够了吧
对于我们人来说1秒不是眨眼的功夫吗。所以说以上所说不是QQ使用UDP的原因,起码不是主要原因。(其实QQ也有验证机制,只不过这个验证机制是由应用伍则层其他协议完成的)那么就要更深一层去探讨UDP和TCP
在传输上区别了。首先我个人认为最主要是UPD包比TCP包要少12个字节。12个字节枝凳差距虽然很微小
但量变到一定程度那就有质的变化。现在我们2M宽带理论256KB
每秒,就算200KB吧
等于1600个字节
大家可以算这个差距。还有一个更深层原因也就是UDP“素质”很差。TCP就很绅士。
为什么说UDP素质不高
是因为UDP就像马路腔搭棚那种见缝插帧的司机
谁也不让
拼了命往前冲
不管你路上有多挤
更不会去想维持一下次序。TCP就不会!一旦TCP觉得路上拥挤就会自觉降低发送速度
他会努力维护次序。这样一进一退差距就大了。所以我觉得这才是QQ使用UDP的主要原因!也似乎也符合腾讯一贯作风
呵呵
MSN使用TCP
就要慢一些
不信你可以试试
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)