Socket.Disconnect vs Socket.Close

Arm*_*ots 2 c# sockets

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

voy*_*tek 6

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

using (var socket = new Socket(   ))
{


    socket.Shutdown(SocketShutdown.Both);
}
Run Code Online (Sandbox Code Playgroud)

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

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

这基本上意味着,当你设置reuseSocketfalse你关闭后,它将被安置.Shutdown方法不会断开你的套接字,它只会禁用发送/接收数据.