我想编写一个服务器端程序,可以接收多个客户端的连接并与其通信。在服务器端程序中定义了两个继承自CAsnycSocket的类,CListenSocket和CCommunicationSocket,分别用来监听连接和连接后与客户通信。在网上看到有人建议把CListenSocket的OnAccept写成如下形式:void CListenSocket::OnAccept(int nErrorCode)
{
// 生成新的通信Socket对象与客户进行通信
CCommunicationSocket* pCommuSocket = new CCommunicationSocket();
Accept(*pCommuSocket); CAsyncSocket::OnAccept(nErrorCode);
}然后在CCommunicationSocket类的OnReceive函数里就可以与客户端通信了。采用这种方法确实能完成所需的功能了,但是每次有新客户端请求的时候都会生成一个CCommunicationSocket对象,时间长了不就发生内存泄漏了嘛,新生成的这些对象如何才能析构掉呢?
{
// 生成新的通信Socket对象与客户进行通信
CCommunicationSocket* pCommuSocket = new CCommunicationSocket();
Accept(*pCommuSocket); CAsyncSocket::OnAccept(nErrorCode);
}然后在CCommunicationSocket类的OnReceive函数里就可以与客户端通信了。采用这种方法确实能完成所需的功能了,但是每次有新客户端请求的时候都会生成一个CCommunicationSocket对象,时间长了不就发生内存泄漏了嘛,新生成的这些对象如何才能析构掉呢?
解决方案 »
- VC读取ACCESS中的word对象时乱码问题怎么解决?求高手哇!!!
- opengl 混合数组和多重纹理的冲突
- 【征集】读取字符的ascii码的程序
- 求教!mdi中,如何在一个子窗口active的时候,设置某些菜单项灰色,也就是不可用?
- 怎样获取SDI窗口的工具栏高度?
- ******祝愿csdn更上一层楼,大家国庆快乐******
- midioutgetvolume的问题.
- 用ATL开发了控件,如何激发其中的事件
- 奔腾绿色多标签浏览器界面的开发视频教程(VC,MFC)
- 如何使Button控件获得mouseup mousedown mousemove消息
- 想找到两幅图片重叠的一列
- 学VC/MFC真难。卡住了。
delete pCommuSocket;
如何判断已经断开连接了?是在CCommunicationSocket类的OnClose函数里调用delete pCommuSocket吗?