尝试关闭活动的TCP连接,但收到错误

时间:2014-02-13 13:18:25

标签: c# asp.net sockets tcp error-handling

我有一个使用ASP.net c#,javascript和jQuery的Web应用程序。

我正在尝试在PAGE_UNLOAD事件中关闭某些活动的TCP连接。

这是我的代码 -

IPGlobalProperties properties = IPGlobalProperties.GetIPGlobalProperties();
TcpConnectionInformation[] connections = properties.GetActiveTcpConnections();

IPAddress ipAddress = Dns.Resolve(camIP).AddressList[0];
IPEndPoint remEndPoint = new IPEndPoint(ipAddress, 80);

foreach (TcpConnectionInformation c in connections)
{
    if (c.RemoteEndPoint.ToString() == remEndPoint.ToString())
    {
        Socket mySocket = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream, ProtocolType.Tcp);

        try
        {
            mySocket.Bind(c.LocalEndPoint);
            mySocket.Shutdown(SocketShutdown.Both);
        }
        catch (Exception ex)
        {

        }
        finally
        {
            mySocket.Close();
        }
    }
}

但是,当我尝试绑定时,我收到以下错误 - “尝试以其访问权限禁止的方式访问套接字”

通过设置img控件的src -

来创建TCP连接
CameraIframe.Src = @"http://" + CameraHiddenFieldUsername.Value + ":" +
    CameraHiddenFieldPassword.Value + "@" + camIP + @"/axis-cgi/mjpg/video.cgi?fps=" +
    CameraHiddenFieldfps.Value + "&compression=" + CameraHiddenFieldcompression.Value +
    "&resolution=320x240&text=0&date=0&clock=0&eek=" + DateTime.Now.ToBinary();

我是socket编程的新手,所以感谢任何帮助。

2 个答案:

答案 0 :(得分:0)

套接字很可能是由某个进程持有的。使用netstat -o查找哪一个。

答案 1 :(得分:0)

关闭或“删除”时不会出现问题。 绑定时出现问题。 请相应修改标题。您正在尝试绑定已绑定的套接字,或尝试将其绑定到本地端口< 1024。

你正在做的事情没有意义。如果它们是您自己的连接,只需关闭它们。 您无需为此创建新套接字。

当你创建一个新套接字时,你不需要绑定它,除非你要用它来监听它,并且在没有事先连接它或随后关闭它的情况下关闭它也没有意义。< / p>