以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]OpenQQ同时多人请求下载小文件时会出错,会是BUG吗?  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=87837)

--  作者:hui986
--  发布时间:2016/7/20 23:27:00
--  [求助]OpenQQ同时多人请求下载小文件时会出错,会是BUG吗?

今天再强化测试,多人同时下载“图标”文件(小文件每个5~10KB)

服务端我已改为一个一个文件下载,不用批量的概念了

但还提示【出错】

 


图片点击可在新窗口打开查看此主题相关图片如下:下载时出错.jpg
图片点击可在新窗口打开查看

 

注:一个人下载时不出错,多人同时发出请求下载时出错
关闭出错时,服务端又能将请求下载的文件全部发送到终端


--  作者:hui986
--  发布时间:2016/7/21 6:11:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20160721060108.jpg
图片点击可在新窗口打开查看
我改用了用事件较对数量再执行下一个队列,发现跟踪不了全局变量的变化

 

如果用对话框测试的方式,就能跟踪全局变量的变化,也能同时顺利执成完成!

如果注释掉“对话框的提示”,变量却不能正常比对!

 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160721060855.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160721063638.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/7/21 6:38:25编辑过]

--  作者:Hyphen
--  发布时间:2016/7/21 8:57:00
--  
比较的条件是2个值相等并且其中一个大于0,才执行if的代码,很明显最后截图的返回值不符合条件的
--  作者:狐狸爸爸
--  发布时间:2016/7/21 9:02:00
--  
在错误提示窗口,勾选详细信息,将整个错误提示复制粘贴后发上来看看
[此贴子已经被作者于2016/7/21 9:04:09编辑过]

--  作者:大红袍
--  发布时间:2016/7/21 9:12:00
--  
 还是做实例发上来吧。
--  作者:hui986
--  发布时间:2016/7/21 13:30:00
--  
以下是引用Hyphen在2016/7/21 8:57:00的发言:
比较的条件是2个值相等并且其中一个大于0,才执行if的代码,很明显最后截图的返回值不符合条件的

嗯,所以全局变量(Var)值的变化,程序捕获不够快或者没有捕获

以至没有执行,if的代码

[此贴子已经被作者于2016/7/21 13:51:40编辑过]

--  作者:hui986
--  发布时间:2016/7/21 13:38:00
--  
以下是引用狐狸爸爸在2016/7/21 9:02:00的发言:
在错误提示窗口,勾选详细信息,将整个错误提示复制粘贴后发上来看看
[此贴子已经被作者于2016/7/21 9:04:09编辑过]

狐爸,您好!

一、服务器的错误,详细信息就是第一个截图,现在用队列的方法,服务端就很少出现上述错误提示,但时有发生!

 

二、我应用你的指引,每次取十个文件的发送信息,再用信息交换来确认发送数量相等,

如果正确,才执行下一个发送队列 , 我是用全局变量的变化来计算接收成功的文件数量,

问题是很多时候,Var的值变化了,但有时捕获不到!以至不执行下一个发送任务

【试过有一两次运行正常】

[此贴子已经被作者于2016/7/21 13:43:58编辑过]

--  作者:hui986
--  发布时间:2016/7/21 13:49:00
--  
以下是引用大红袍在2016/7/21 9:12:00的发言:
 还是做实例发上来吧。

袍哥,你好!这个里面涉及很多内容与关系逻辑, 很难提取一个实例来!图片点击可在新窗口打开查看


--  作者:大红袍
--  发布时间:2016/7/21 14:24:00
--  

 不明白你为什么要用到 GlobalVariableChanged 事件。

 

 做个小例子说明一下你的问题,肯定是你代码有问题。


--  作者:hui986
--  发布时间:2016/7/21 14:35:00
--  
以下是引用大红袍在2016/7/21 14:24:00的发言:

 不明白你为什么要用到 GlobalVariableChanged 事件。

 

 做个小例子说明一下你的问题,肯定是你代码有问题。

 

因为我发现一个规律,只要服务端正在发送文件的时候,有客户端请求发送文件时,服务器会出现错误

 


图片点击可在新窗口打开查看此主题相关图片如下:下载时出错.jpg
图片点击可在新窗口打开查看

 

为了避免这个错误,我加入了一个变量测试服务器是否正在发送文件,

如果是在发送文件,就先等发送完正在发送的队列,才执行下一个队列

如果要确定是否发送完队列就用了终端的一个变量来计数器来检测了,

所以就用到GlobalVariableChanged 事件。

 


 


图片点击可在新窗口打开查看此主题相关图片如下:qq图片20160721060855.png
图片点击可在新窗口打开查看
[此贴子已经被作者于2016/7/21 14:35:43编辑过]