Foxtable(狐表)用户栏目专家坐堂 → [求助]OpenQQ发送信息问题(已解决)


  共有2183人关注过本帖树形打印复制链接

主题:[求助]OpenQQ发送信息问题(已解决)

帅哥哟,离线,有人找我吗?
pcxjxjhkw
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
[求助]OpenQQ发送信息问题(已解决)  发帖心情 Post By:2016/11/22 15:45:00 [只看该作者]

客户A向客户B发送约定格式的信息,B收到信息后返回指定信息。

如何实现:当A发出信息后,等待B回信息,如果在规定时间内未收到信息,则提示!

类似Sendwait

 

[此贴子已经被作者于2016/12/4 20:32:35编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/22 16:01:00 [只看该作者]

客户A发出消息后,可以在指定表格或者全局变量置一个状态值。同时启动一个计时器,在指定时间查询这个状态值,如果在规定时间内查询状态值没有变化,则提示!

如果接收到B的消息,判断约定格式是不是和之前的消息相关,如果是则改变之前的状态值为已回复,并关闭计时器。



 回到顶部
帅哥哟,离线,有人找我吗?
pcxjxjhkw
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2016/11/22 17:15:00 [只看该作者]

客户端之间通信怎么没Sendwait函数?

 

太麻烦了


 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2016/11/22 17:16:00 [只看该作者]

客户端之间没有这个函数,因为看不到提供这个函数的必要性。

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/11/22 17:19:00 [只看该作者]

客户端之间并不是直接通讯,需要通过服务器转发。

如果客户端之间可以Sendwait,就相当服务器会被客户B阻塞

 回到顶部
帅哥哟,离线,有人找我吗?
pcxjxjhkw
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2016/11/22 17:22:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
pcxjxjhkw
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2016/12/3 20:44:00 [只看该作者]

以下是引用有点蓝在2016/11/22 16:01:00的发言:
客户A发出消息后,可以在指定表格或者全局变量置一个状态值。同时启动一个计时器,在指定时间查询这个状态值,如果在规定时间内查询状态值没有变化,则提示!

如果接收到B的消息,判断约定格式是不是和之前的消息相关,如果是则改变之前的状态值为已回复,并关闭计时器。


研究了很久,还是没解决。我把问题再描述详细一些。

A向B发送一信息【?wj-123.jpg】,请求查找123.jpg,要求在5秒内将文件回传。

B中有可能无该文件,或在5秒内未回传。

 

想实现:5秒内收到该文件,则另存于本地。若5秒内未收到该文件,则提示,超时。后收到的文件也删除。

如何写成一函数?


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2016/12/4 15:58:00 [只看该作者]

1、设置一个public变量dic,记录文件名和时间 dic.add("wj-123.jpg", Date.Now), 发送消息 ?wj-123.jpg

 

2、接收文件事件,判断FileName属性,看在不在dic里面,如果在,取出其时间值,和当前时间比较。如果在5秒内,就移除dic.remove("wj-123.jpg"),如果大于5秒,则删除。

 

3、同时,弄一个计时器,循环判断dic里面的所有元素,如果值和当前时间比较,大于5秒的,就提示这个元素超时。


 回到顶部
帅哥哟,离线,有人找我吗?
pcxjxjhkw
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:七尾狐 帖子:1791 积分:12764 威望:0 精华:1 注册:2013/7/18 15:51:00
  发帖心情 Post By:2016/12/4 20:32:00 [只看该作者]

 

可否封装为一函数?

[此贴子已经被作者于2016/12/4 20:33:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110597 积分:562881 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2016/12/5 8:28:00 [只看该作者]

代码有多个地方可以重用才有必要做成函数。

上面的用法基本都是和事件结合,3个都是在不同事件设置的。整不到一起

 回到顶部