socket异步通信时,程序异常退出的问题~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

cntmi 2010-07-28 09:53:08
我现在写了一个异步通信的socket通信,正常退出,监听也停止,是没有问题的

问题是:如果程序异常退出,没有关闭掉监听程序,那程序也会在后台继续监听处理
当我再次启动程序,启动监听的,就会在ServerListen.Bind(localEP);这个地方报错

有没有方法判断监听是否存在,或者是强制去掉以前的监听,从新开始
...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
龍月 2010-07-28
  • 打赏
  • 举报
回复
窗体close 事件里面 dispose socket对象 试试

或者用application。exit 试试
cntmi 2010-07-28
  • 打赏
  • 举报
回复
但是有个问题哦,如果我在正常退出的情况下,没有释放资源,然后退出程序了,为什么windows不自动给我释放掉呢???
cntmi 2010-07-28
  • 打赏
  • 举报
回复
不知道还有没有别的意见哦?…………
cntmi 2010-07-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 whslovexyp 的回复:]
这种不会,进程没有了,会保障你的socket被释放
[/Quote]

呵呵,那就是这种情况不存在啦,看来我担心的情况不存在了,谢谢楼上几位
whslovexyp 2010-07-28
  • 打赏
  • 举报
回复
这种不会,进程没有了,会保障你的socket被释放
cntmi 2010-07-28
  • 打赏
  • 举报
回复
我正常退出时,在closing正确释放资源了,但是程序如果被强制退出(比如从任务管理器直接结束进程)
这是我没办法控制的,这样资源会释放吗?
满衣兄 2010-07-28
  • 打赏
  • 举报
回复
程序写的有问题,异常退出时没处理好,找找原因,看异常时候执行了哪些操作,改改
healer_kx 2010-07-28
  • 打赏
  • 举报
回复
那是因为你资源没有正确释放导致的,但是理论说进程退出了,socket,OS会帮你Close的。

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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