Я просматриваю исходный код приложения голосовой чат.Исключение, когда я передаю соответствующий аргумент методу
Здесь я хочу запустить серверную программу, чтобы любой клиент мог связаться с сервером для голосового чата. Для запуска моей серверной программы мне нужно передать имя сервера, номер порта и сетевой интерфейс, который я собираюсь использовать для голосового чата, после передачи необходимых аргументов мне нужно вызвать метод 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;
}
вы получаете исключение или делает это: 'if (string.IsNullOrWhiteSpace (имя_сервера))' оценивается как true? –
@MongZhu if (string.IsNullOrWhiteSpace (имя_сервера)) оценивается как true –
, что не обязательно означает, что 'severName' является' null'. '' '' или '' '' или '' \ t "' также будет оцениваться как true. Вы посмотрели в Debugger, значение которого 'tbServerName.Text;' имеет в этой строке: var varName = tbServerName.Text; '? –