2016-08-11 1 views
0

Я просматриваю исходный код приложения голосовой чат.Исключение, когда я передаю соответствующий аргумент методу

Здесь я хочу запустить серверную программу, чтобы любой клиент мог связаться с сервером для голосового чата. Для запуска моей серверной программы мне нужно передать имя сервера, номер порта и сетевой интерфейс, который я собираюсь использовать для голосового чата, после передачи необходимых аргументов мне нужно вызвать метод ServerStart, который делается, нажав кнопку «Начать флажок» в представлении дизайна. Если пользователь не передал соответствующий тип аргументов, тогда он показывает ошибку, вызывая метод ShowError().

Теперь, когда я передаю имя сервера, номер порта и сетевой интерфейс, тогда переменная serverName ссылается на null вместо переданного аргумента serverName.

Зачем возникает исключение при запуске серверной программы, исключение - «Источник не найден, но журналы некоторых или всех событий не могут быть найдены. Недоступные журналы: безопасность».

public partial class ServerWindow 
{ 
    private ChatServer server; 
    public delegate void SetListBoxItem(string str, string type); 
    public ServerWindow() 
    { 
     InitializeComponent(); 
     ObtainNetworkInterfaces(); 
    } 


    private void cbStartStop_Checked(object sender, RoutedEventArgs e) 
    { 
     if (cbStartStop.IsChecked == true) 
     { 
      // validate the port number 
      try 
      { 
       var port = Int32.Parse(tbPortNumber.Text); 

       server = new ChatServer(port, cbInterfaces.SelectedItem, tbServerName.Text); 
       server.ClientConnected += ServerOnClientConnected; 
       server.ClientDisconnected += ServerOnClientDisconnected; 
       var serverName = tbServerName.Text; 
       if (string.IsNullOrWhiteSpace(serverName)) 
       { 
        ShowError(); 
       } 
       else 
       { 
        server.StartServer(); 
        SetControls(false); 
       } 
      } 
      catch(Exception ex) 
      { 
       MessageBox.Show(ex.Message); 
      } 
     } 

     else 
     { 
      if (server == null) 
       return; 
      server.StopServer(); 
      SetControls(true); 
     } 
    } 

    private void ShowError() 
    { 
     MessageBox.Show(@"Please enter valid port number and/or server name"); 
     cbStartStop.IsChecked = false; 
    } 
+0

вы получаете исключение или делает это: 'if (string.IsNullOrWhiteSpace (имя_сервера))' оценивается как true? –

+0

@MongZhu if (string.IsNullOrWhiteSpace (имя_сервера)) оценивается как true –

+0

, что не обязательно означает, что 'severName' является' null'. '' '' или '' '' или '' \ t "' также будет оцениваться как true. Вы посмотрели в Debugger, значение которого 'tbServerName.Text;' имеет в этой строке: var varName = tbServerName.Text; '? –

ответ

1

Проблема, кажется, не в коде, который вы публикуемую. После нашего чата я бы предложил посмотреть на это post попробуйте принятый ответ. У меня такое чувство, что оно решит вашу проблему.

Обычно полезно использовать сообщение об исключении в предложении catch. :)

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