以文本方式查看主题

-  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个都是在不同事件设置的。整不到一起