C#:关闭套接字时出错?

时间:2018-01-21 00:21:19

标签: c# .net sockets

我正在尝试处理一个控制台应用程序,处理这个问题的一部分就是关闭服务器套接字,但是当我尝试我得到一个SocketException并且我不确定为什么?

  

System.Net.Sockets.SocketException:'发送或接收数据的请求   被禁止,因为套接字没有连接(发送时)   在使用sendto调用的数据报套接字上没有提供地址'


我通过调用Socket.Shutdown来处理这个类,这是抛出错误的地方。

public void Dispose()
{
    if (_serverSocket == null)
    {
        return;
    }

    _serverSocket.Shutdown(SocketShutdown.Both);
    _serverSocket.Close();
    _serverSocket.Dispose();
}

1 个答案:

答案 0 :(得分:0)

因为

_serverSocket.Shutdown(SocketShutdown.Both);
    _serverSocket.Close();

已经断开连接,因此您不再需要_serverSocket.Dispose();