以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]OpenQQ发送信息问题(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=93190) |
-- 作者:pcxjxjhkw -- 发布时间:2016/11/22 15:45:00 -- [求助]OpenQQ发送信息问题(已解决) 客户A向客户B发送约定格式的信息,B收到信息后返回指定信息。 如何实现:当A发出信息后,等待B回信息,如果在规定时间内未收到信息,则提示! 类似Sendwait
谢 [此贴子已经被作者于2016/12/4 20:32:35编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/11/22 16:01:00 -- 客户A发出消息后,可以在指定表格或者全局变量置一个状态值。同时启动一个计时器,在指定时间查询这个状态值,如果在规定时间内查询状态值没有变化,则提示! 如果接收到B的消息,判断约定格式是不是和之前的消息相关,如果是则改变之前的状态值为已回复,并关闭计时器。
|
-- 作者:pcxjxjhkw -- 发布时间:2016/11/22 17:15:00 -- 客户端之间通信怎么没Sendwait函数?
太麻烦了 |
-- 作者:狐狸爸爸 -- 发布时间:2016/11/22 17:16:00 -- 客户端之间没有这个函数,因为看不到提供这个函数的必要性。 |
-- 作者:有点蓝 -- 发布时间:2016/11/22 17:19:00 -- 客户端之间并不是直接通讯,需要通过服务器转发。 如果客户端之间可以Sendwait,就相当服务器会被客户B阻塞
|
-- 作者:pcxjxjhkw -- 发布时间:2016/11/22 17:22:00 -- 哦 |
-- 作者:pcxjxjhkw -- 发布时间: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秒内未收到该文件,则提示,超时。后收到的文件也删除。 如何写成一函数? 谢 |
-- 作者:有点色 -- 发布时间: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 -- 发布时间:2016/12/4 20:32:00 -- 谢
可否封装为一函数? [此贴子已经被作者于2016/12/4 20:33:06编辑过]
|
-- 作者:有点蓝 -- 发布时间:2016/12/5 8:28:00 -- 代码有多个地方可以重用才有必要做成函数。 上面的用法基本都是和事件结合,3个都是在不同事件设置的。整不到一起
|