是否有必要在每次套接字操作后调用Shutdown和Close?

时间:2015-11-16 21:14:19

标签: c# sockets

有问题的代码非常接近示例

此处:https://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspx(服务器)

此处:https://msdn.microsoft.com/en-us/library/bew39x2a(v=vs.110).aspx(客户端)

在这两个示例中都使用了Close和Shutdown。我之所以想知道的原因是我已经玩过使用关闭/关闭以及放置它们的位置,到目前为止还没有真正看到使用它们的好处。

让我们说我的客户端每2秒发送一条消息,在这种情况下我应该使用关闭/关闭吗?每2分钟一条消息怎么样?

据我所知,如果我从服务器和客户端完全删除对Close和Shutdown的所有调用,这对继续在任一侧运行的代码没有影响。

我是否应该或不应该在每种情况下都使用这些?

1 个答案:

答案 0 :(得分:0)

在完成套接字之前,无需关闭,关闭或丢弃套接字。您可以随意继续读取数据,直到完成通信为止。如果套接字长时间处于空闲状态,大约15分钟以上,它可能会被OS或其他系统自动关闭。否则,只需将其打开,直到您完成使用它。