Socket.Disconnect vs Socket.Close

时间:2015-06-24 16:19:04

标签: c# sockets

使用袜子时,我必须遵循哪些区别和规则? 我正在编写简单的守护进程,它必须侦听端口并执行某些操作。

1 个答案:

答案 0 :(得分:6)

Socket.CloseDispose方法实际上是相同的,所以我只使用using语句。因为在关闭套接字之前你应该总是调用Shutdown,你的代码应该是这样的(至少我会这样做):

using (var socket = new Socket(   ))
{


    socket.Shutdown(SocketShutdown.Both);
}

关于disconnect:它需要单个参数bool reuseSocket,因此根据msdn

  

reuseSocket   键入:System.Boolean   如果在当前连接关闭后可以重用此套接字,则为true;否则,错误。

这基本上意味着,当您将reuseSocket设置为false时,它会在您关闭后处理。 Shutdown方法不会断开你的套接字,它只会禁止发送/接收数据。