在异常断开连接时如何delete socket?

yjgx007 2005-01-13 10:30:10
我用CSocket写的Client/Server程序, Server建立一个侦听socket, 每个Client socket连接到Server时,在Server端会采用new的方式创建一个Client Socket与Client保持通讯.
当某一个Client异常断开后,在Server端我用delete方法删除该Client Socket是不成功的,会抛出异常, 并且该Client Socket并未delete.

各位有什么好的方法吗?
...全文
411 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
yjgx007 2005-01-14
  • 打赏
  • 举报
回复
up!
gdy119 2005-01-14
  • 打赏
  • 举报
回复
try
{
pSocket->close()
delete psocket;
}
catch(...)
{
.........
}
Hendy_So 2005-01-14
  • 打赏
  • 举报
回复
你只说异常,又没说什么异常,而且不见你的所谓删除代码,难道要别人猜吗?
那我先猜一下,不要直接delete,或许应该先Close。没用过CSocket,不知是不是这样的。
Hendy_So 2005-01-13
  • 打赏
  • 举报
回复
看看是什么异常,根据异常处理。
可以贴代码一看。
yjgx007 2005-01-13
  • 打赏
  • 举报
回复
pelease help me, appreciate for your helps!
yjgx007 2005-01-13
  • 打赏
  • 举报
回复
up!
yjgx007 2005-01-13
  • 打赏
  • 举报
回复
当有一个Client连接至Server, Server的listen socket在OnAccept函数中:
CListenSocket::OnAccept(){

CClientSocket* pSocket = new CClientSocket(this);

if (m_pSocket->Accept(*pSocket))
{
...
}
}

当Client的连接断开后(我这里强制结束Client程序进程), 那么Server端需要删除

与之对应的ClientSocket(上面new生成的), 这样就会抛出异常,为什么呢?怎么解决?
xuzheng318 2005-01-13
  • 打赏
  • 举报
回复
把代码贴出来看看!
oyljerry 2005-01-13
  • 打赏
  • 举报
回复
保证资源释放

18,358

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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