2012-05-10 48 views
-1

可能重複:
Listening to Port 5060C#Listenin 5060端口

我開發一個SIP client.And我有一個問題。 我想聽5060端口捕捉SIP服務器消息。爲此,我編碼的東西。(也我在程序中的管理員權限)

但我得到的SocketException:「嘗試訪問套接字的方式通過其訪問權限」(本地錯誤代碼:10013),禁止...

我的代碼:

private void ListenPort() { 
     WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
     bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); 
     TcpListener server = null; 
     Int32 port = 5060; 
     IPAddress localAddr = IPAddress.Parse("192.168.1.33"); 
     server = new TcpListener(localAddr, port); 

     Byte[] bytes = new Byte[1000]; 
     String data = null; 
    while (hasAdministrativeRight == true) 
    { 
     server.Start(); 
     int i = 0; 
     while (1==1) 
     { 
      TcpClient client = server.AcceptTcpClient(); 
      NetworkStream stream = client.GetStream(); 
      data = null; 
      i = stream.Read(bytes, 0, bytes.Length); 
      data += System.Text.Encoding.ASCII.GetString(bytes, 0, i); 
      label3.Text += data; 
      this.Refresh(); 
      Thread.Sleep(500); 

     } 
    } 
} 

如果你認爲這個問題?

+0

您是否曾嘗試以管理員身份運行應用程序? –

+0

是的,,我試試。但是仍然一樣 – lucky

回答

1

您是否檢查過沒有其他程序已經在使用端口5060?這就是這個錯誤意味着什麼。

見對此事的討論:http://social.msdn.microsoft.com/Forums/en-US/netfxnetcom/thread/d23d471c-002a-4958-829e-eb221c8a4b76/

+0

是的,我查了其他程序,防火牆和反病毒程序反覆。一切都好。但我不聽這個端口。非常有趣 – lucky

+0

@MehmetEnder:你讀完了討論喜歡@Spencer Ruport? Alan McFarlane的答案似乎是解決您的問題的方法。請參閱:http://msdn.microsoft.com/en-us/library/ms740668.aspx閱讀關於'WSAEACCES(10033)'。 –

1

你需要調用server.Start() while循環和第一AcceptTcpClient調用之前。 也可以嘗試使用IPAddress.Any代替IPAddress.Parse(「192.168.1.33」)爲您的偵聽器IP

0

確保任何其他SIP服務器程序未安裝作爲已經使用根據端口的Windows服務。

輸入netstat -an,它會顯示「監聽」端口或嘗試搜索端口檢查軟件。

並檢查您的SIP服務器配置是否運行在TCP或UDP上。