首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

在程序退出前用异步套接字发送数据的有关问题

2012-01-31 
在程序退出前用异步套接字发送数据的问题我用异步套接字编的一个客户端程序,希望程序在点 断开 按扭或者

在程序退出前用异步套接字发送数据的问题
我用异步套接字编的一个客户端程序,希望程序在点 "断开 "按扭或者直接关闭程序时能够向服务端发送一条信息表示客户端退出了,但就是如果点 "断开 "按扭就可以,直接关闭程序就不行.   我是在OnDestory事件里面写的向服务段发送退出信息的,服务端收不到,但如果我在发送信息后不立即退出,而是弹出个MessageBox,然后点确定后再退出程序就一切正常.
      感觉象是客户端需要延迟一下才能将数据发到服务端样的,不知道是不是这么回事?如果是的话请大虾们帮想想该怎么处理好些.
      还有个问题就是,我采用   mutex互斥来防止程序多次运行,但问题是第二次运行程序的话,程序是没运行,但却会报一个什么 "xxxxxx内存不能write "的系统错误,我换了用查找窗口的方式来防止多次运行结果也一样,还是这个错.
我是在   win2003下调试的.

[解决办法]
第一个问题应该时你还没发送,就把窗口destory了,控制一下,再onsend事件后再destory
第二个问题,贴代码出来
[解决办法]
在OnClose事件调用closesocket(s)就可以了
[解决办法]
应该是hMutex被创建2次的问题
[解决办法]
HANDLE m_hMutex=CreateMutex(NULL,false, m_pszAppName);
if(WAIT_OBJECT_0!=WaitForSingleObject(m_hMutex,100))
{
return false;
}
试试这个

热点排行