2012-05-08 2 views
0

Я разрабатываю клиент SIP. Для этого я должен прослушивать порт 5060 для входящих сообщений SIP-сервера. Для этого я что-то закодировал. (Также я принимаю права администратора в программе.)Прослушивание порта 5060

WindowsPrincipal pricipal = new WindowsPrincipal(WindowsIdentity.GetCurrent()); 
    bool hasAdministrativeRight = pricipal.IsInRole(WindowsBuiltInRole.Administrator); 
    if (hasAdministrativeRight == true) 
    { 
     TcpListener server; 
     Int32 port = 5060; 
     IPAddress localAddr = IPAddress.Parse("127.0.0.1"); 
     server = new TcpListener(localAddr, port); 
     server.Start(); 
     Byte[] bytes = new Byte[256]; 
     String data = null; 
     while (true) 
     { 
      Console.Write("Waiting for a connection... "); 
      TcpClient client = server.AcceptTcpClient(); 
      Console.WriteLine("Connected!"); 
      data = null; 
      NetworkStream stream = client.GetStream(); 
      int i; 
      while ((i = stream.Read(bytes, 0, bytes.Length)) != 0) 
      { 
       data = System.Text.Encoding.ASCII.GetString(bytes, 0, i); 
       Console.WriteLine("Received: {0}", data); 
       data = data.ToUpper(); 

       byte[] msg = System.Text.Encoding.ASCII.GetBytes(data); 
       stream.Write(msg, 0, msg.Length); 
       Console.WriteLine("Sent: {0}", data); 
      } 

      client.Close(); 
     } 
    } 

я SocketException: «Сделана попытка доступа к сокету таким образом, запрещенным правами доступа» (Native код ошибки: 10013) ...

У вас есть предложение по этому вопросу?

ответ

1

Кажется, что у вас было два приложения, и они пытаются использовать для доступа к одному и тому же сокету.

Что Microsoft says about your problem:

WSAEACCES (10013)

  • Перевод: Permission Denied
  • Описание: попытка была сделана доступа к сокету в путь, который запрещен его доступом разрешений. Например, эта ошибка возникает, когда широковещательный адрес используется для sendto, но разрешение на широковещание не устанавливается с помощью setsockopt (SO_BROADCAST).

    Другая возможная причина ошибки WSAEACCES в том, что, когда функция связывания (Wsapiref_6vzm.asp) называется (в Microsoft Windows NT 4 +0,0 Service Pack 4 [SP4] или более поздней версии), другая программа, сервис, или драйвер режима ядра привязан к тому же адресу с эксклюзивным доступом. Такой эксклюзивный доступ представляет собой новую функцию Windows NT 4.0 SP4 и более поздних версий, и она реализована с использованием опции SO_EXCLUSIVEADDRUSE.

+0

Да, U работают now.Thnk у right.It в! – lucky

Смежные вопросы