首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Socket.Disconnect(bool重用)

Socket.Disconnect(bool重用)
EN

Stack Overflow用户
提问于 2011-02-18 07:05:55
回答 1查看 5.9K关注 0票数 5

Socket.Disconnect(bool reuse)根据MSDN使程序能够重用套接字。我的问题是:

如果我们决定重用套接字,那么

  1. 是否意味着它也将重用相同的本地端点?它是为该套接字保留端口,还是只保存所有对象资源(我不认为它会保存)?
  2. ,如果它实际上只保存了资源,它们会被分配到下一个连接吗?如果是,那么发送/接收缓冲区是否会自动刷新,或者是否存在刷新它们的方式?Socket.ShutDown(ShutDown.Both)是否在断开连接时为我这样做?
  3. 在什么情况下会使用Socket.Disconnect(false)?如果所有的目的都是重用套接字,这会给我什么呢?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-19 21:21:26

如果

  1. = false,则套接字将在关闭后自动释放。作为EndPoint和缓冲区大小的所有设置都不会被重新设置为默认设置,但是您可以根据需要更改它。建议用户决定更改连接端口。您只需要关闭套接字,更改端口并再次连接套接字,而不需要创建新套接字并重新设置它。
  2. Socket.Shutdown只是禁用发送/接收/两者,而不是断开套接字。但是,对于新的传入/传出数据会发生这种情况,因此缓冲区将被正常刷新。在断开连接之前调用它是一种很好的做法,以确保所有数据都已发送,并且在disconnecting.
  3. Returning示例1中没有接收到数据。因此,您只需要更改端口。您不希望再次创建套接字,重新将套接字的所有参数配置为事件和缓冲区,这样会消耗时间和资源,所以最好重用您已经拥有的套接字。
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5038546

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档