2014-02-13 27 views
0

我有一個使用ASP.net c#,javascript和jQuery的web應用程序。試圖關閉活動的TCP連接,但得到錯誤

我想在我的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(); 
        } 
       } 
      } 

然而,當我嘗試和綁定我碰到下面的錯誤 - 「試圖通過其訪問權限不允許的方式來訪問套接字」

的TCP連接是通過設置IMG控制的src創造 -

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編程,因此任何幫助,將衷心感謝。

謝謝

回答

0

最有可能的套接字被某個進程持有。使用netstat -o來查找哪一個。

+0

有沒有辦法強制關閉套接字?套接字具有PID並且狀態已建立。 – Kev

0

關閉或'刪除'時這不是問題。這是一個問題,當綁定。請相應地修復您的標題。您試圖綁定已綁定的套接字,或試圖將其綁定到本地端口< 1024.

您正在做的事情沒有開始有意義。如果他們是你自己的連接,只需關閉他們。 您不需要爲此創建新的套接字。

當你創建一個新的套接字時,你不需要綁定它,除非你要聽它,並關閉它,而沒有事先連接它或隨後關閉它也沒有意義。

+0

你如何關閉它們? – Kev