关于如何关闭socket连接

fanzhengbo224 2017-04-28 04:14:21
CloseSocket.Shutdown(SocketShutdown.Both)
CloseSocket.Close()
CloseSocket.Dispose()
CloseSocket = Nothing
1、这几个怎么排序
2、CloseSocket.Close()和CloseSocket.Dispose()是不是一样的,不一样的话有哪些本质的区别
3、CloseSocket = Nothing是不是关闭的时候必要的。。不用会有哪些坏处
...全文
421 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2017-04-29
  • 打赏
  • 举报
回复
CloseSocket.Dispose()内会调用CloseSocket.Close(),触发CloseSocket.Shutdown(SocketShutdown.Both) CloseSocket = Nothing后在不知道什么时候,当垃圾回收的时候会调用析构函数,调用Dispose(),因此不要期待仅仅用它来释放,而是应该用using或者第一行的办法
  • 打赏
  • 举报
回复
引用 楼主 fanzhengbo224 的回复:
3、CloseSocket = Nothing是不是关闭的时候必要的。。不用会有哪些坏处
你的过程结束吗?难道说你喜欢弄个“死循环”让过程总也不结束的那种编程方式? 如果很快就过程结束,所谓 CloseSocket 自动就不引用对象了,此时当然无需设置 Nothing。
  • 打赏
  • 举报
回复
Close 和 Dispose 基本上一模一样,只不过 Close 额外地为调试而做了一个日志而已,Close 调用了 Dispose方法。 在Dispose 方法中,有很多内容,适应很多情况。其中已经执行了 Shutdown 操作,所以不需要 Shutdown。
  • 打赏
  • 举报
回复
只需要 Close,它已经包含了 Dispose、Shutdown,不需要再额外调用别的语句。

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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