我用CSocket写的Client/Server程序, Server建立一个侦听socket, 每个Client socket连接到Server时,在Server端会采用new的方式创建一个Client Socket与Client保持通讯.
当某一个Client异常断开后,在Server端我用delete方法删除该Client Socket是不成功的,会抛出异常, 并且该Client Socket并未delete.各位有什么好的方法吗?
当某一个Client异常断开后,在Server端我用delete方法删除该Client Socket是不成功的,会抛出异常, 并且该Client Socket并未delete.各位有什么好的方法吗?
解决方案 »
- VS2008没有基于对话框的工程选项
- 求一插件:能根据头文件自动生成CPP实现文件的函数接口。
- 再问几个usb的问题
- 在CSplitterWnd类切割窗口时,如何使分割线不被移动
- ******初学者的困难,很简单!请大家帮忙解决*********
- 为何access表中加入20多条纪录后就无法再添加,也不报错误!!紧急!!在线等
- 请教学习vc应该看什么书入门快?
- 专家提示没了?why????
- CArray的初始化方法,不知道大家有没有总结过?
- 我调试程序时,出现 Unhandled exception in *.exe:0xC0000005:Accesss Violation,该怎么进行下一步处理?谢谢
- listen(SocketID, 0)为何和listen(SocketID, 1)效果一样?
- 急!求FFT关于任何点数的C的源程序.
CListenSocket::OnAccept(){ CClientSocket* pSocket = new CClientSocket(this); if (m_pSocket->Accept(*pSocket))
{
...
}
}当Client的连接断开后(我这里强制结束Client程序进程), 那么Server端需要删除与之对应的ClientSocket(上面new生成的), 这样就会抛出异常,为什么呢?怎么解决?
那我先猜一下,不要直接delete,或许应该先Close。没用过CSocket,不知是不是这样的。
{
pSocket->close()
delete psocket;
}
catch(...)
{
.........
}