Windows的事件触发机制?

TangDL 2001-12-17 01:09:29
我写了一个Socket程序,其中CMySocket继承了CSocket类,响应OnReceive事件作出反应,然后,我声明了一个对象指针操作此类(类对象被多次New和Delete)。我发现此对象第一次New时,OnReceive事件可正常触发,但Delete后再次New后事件就触发不起来了。
我想问的问题是Windows事件机制是如何运行的,针对此现象应如何解释,如何解决?
请教了!
...全文
333 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
TangDL 2001-12-29
  • 打赏
  • 举报
回复
谢谢各位,结帖了。

hujun614(胡均):不好意思,我发现改动太大了,我懒得改回去了,还是要谢谢你~~~
TangDL 2001-12-26
  • 打赏
  • 举报
回复
不是这样的,我写的东西能正常响应Socket连接的任何动作,但只能在第一次New的时候,同一个对象指针Delete之后再New就不能响应事件了,不知Windows的事件调用是如何实现的,为何第一次能触发事件,而第二次不行。

hujun614(胡均):
先谢了,不过我程序现在改的很乱,改动很大,而且我也绕开这个问题(不是解决),我可能要先整理一下才好给你。
hujun614 2001-12-25
  • 打赏
  • 举报
回复
这样好了,要是我帮你调试,定能解决问题。
我的Email:hujun@serve100ok.com
killingfield 2001-12-25
  • 打赏
  • 举报
回复
我也发现个问题:
SERVER端可以感知CLIENT的CLOSE()事件——在OnClose()中;而CLIENT端却不能感知SERVER端的CLOSE()事件,奇怪。
killingfield 2001-12-25
  • 打赏
  • 举报
回复
DELETE时系统会自动调用CLOSE()的啊(在析构函数中)?断开连接有用吗?
TangDL 2001-12-25
  • 打赏
  • 举报
回复
TangDL 2001-12-21
  • 打赏
  • 举报
回复
我推~~~~
没人关注吗???
TangDL 2001-12-20
  • 打赏
  • 举报
回复
我推~~~~
没人关注吗???
whool 2001-12-18
  • 打赏
  • 举报
回复
这个问题很好解决呀,你可以不用指针呀,直接用对象实例就可以了,下次再用的时候在声明即可。用指针你必须调用Detach(),close(),delete();
TangDL 2001-12-18
  • 打赏
  • 举报
回复
“先断开连接再Delete”,我的程序肯定是这样的
我写了LOG,并用了一个监测程序,证明Socket的连接断开正常;我的Socket是客户端,连远程SMTP服务器;第二次或之后的New调用并建立Socket连接我跟踪了,正常,到应该响应OnReceive的时候就没了
问题:
(1)“第一次new生成的socket对像后,是这个对像和另一个程序建立联接”,为什么第二次New时不能?
(2)我的调试证明Socket连接建立了,但Windows的Socket事件与程序的响应代码的连接未建立,如何建立?
hujun614 2001-12-18
  • 打赏
  • 举报
回复
请朋友们帮忙一下,http://www.csdn.net/expert/topic/422/422552.shtm
急盼你的回复,以解疑惑。
TangDL 2001-12-18
  • 打赏
  • 举报
回复
whool(喔):
如果这样的话,要手动作许多初始化和清除工作

当然可以绕过此问题,只不过我对此问题感兴趣
TangDL 2001-12-18
  • 打赏
  • 举报
回复
是可用直接用对象实例,但这样的话我得作许多手动初始化和清除工作
(我现在已经不用指针了,当然,是手动初始化和清除)
我对此现象感兴趣,希望会者不吝赐教!
freewing 2001-12-17
  • 打赏
  • 举报
回复
天哪 为什么发了两次,这台死机器太慢了
freewing 2001-12-17
  • 打赏
  • 举报
回复
这是在客户端还是服务器端?
在第一次new生成的socket对像后,是这个对像和另一个程序建立联接,所以这个OnReceive是当这个第一次生成的对像有数据发到时产生,而把它deleet后,就不存在一开始建立的联接,所以就不会产生OnReceive事件
freewing 2001-12-17
  • 打赏
  • 举报
回复
这是在客户端还是服务器端?
在第一次new生成的socket对像后,是这个对像和另一个程序建立联接,所以这个OnReceive是当这个第一次生成的对像有数据发到时产生,而把它deleet后,就不存在一开始建立的联接,所以就不会产生OnReceive事件
xiaoxiaohan 2001-12-17
  • 打赏
  • 举报
回复
先断开连接再Delete.
zl_2001 2001-12-17
  • 打赏
  • 举报
回复
我也想知道

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧