Я пытаюсь загрузить две веб-страницы с помощью моего проекта winfe cefSharp. Первая страница будет отображаться, потому что это локальная страница html. Вторая страница должна выполнить ping, потому что это веб-сайт сервера. Мне нужно проверить, можно ли сначала подключать IP-адрес и порт сервера, только я перенаправляюсь на эту страницу. Ниже мое кодирование:Попытка улучшить мой ответ Ping TCP-порта
public Form1()
{
Console.WriteLine("-------Initialization------");
InitializeComponent();
this.StartPosition = FormStartPosition.Manual;
this.Location = new Point(0, 0);
BrowserSettings browserSettings = new BrowserSettings();
Console.WriteLine(AppDomain.CurrentDomain.BaseDirectory + "html\\index.html");
browser = new CefSharp.WinForms.ChromiumWebBrowser(AppDomain.CurrentDomain.BaseDirectory + "html\\index.html")
{// First page.
Dock = DockStyle.Fill,
};
this.Controls.Add(browser);
browser.BrowserSettings.WebSecurity = CefState.Disabled;
browser.BrowserSettings.FileAccessFromFileUrls = CefState.Enabled;
browser.BrowserSettings.UniversalAccessFromFileUrls = CefState.Enabled;
while (true)
{
pSvr = PingServer(ioIP, int.Parse(ioPort));
if (pSvr == true)
{
label3.Text = "Connected to server. Please wait...";
tmr.Interval = 15000;
tmr.Tick += timerHandler;
tmr.Start();
break;
}
Thread.Sleep(5000);
}
}
public bool PingServer(string _HostIP, int _PortNumber)
{
try
{
TcpClient client = new TcpClient(_HostIP, _PortNumber);
Console.WriteLine("Server successfully connected...");
return true;
}
catch
{
Console.WriteLine("Error pinging server...");
return false;
}
}
private void timerHandler(object sender, EventArgs e)
{
tmr.Stop();
browser.Load("http://" + ioIP + ":" + ioPort + "/page2/?1"); // second page
}
Я использую время цикл и сделать Thread.sleep в течение 5 секунд, чтобы сохранить повторные попытки подключения к серверу, если это не удалось.
Логически говоря, независимо от того, могу ли я подключиться ко второй странице, сначала хочу, чтобы первая страница отображалась первой, и она будет повторять попытку подключения ко второй странице в фоновом режиме. Но когда я запускаю свой код и когда он не может подключиться к серверу, первая страница не выйдет. Похоже, что он переходит в цикл while и продолжает повторную попытку подключиться ко второй странице и забыть о показе первой страницы. Это проблема с циклом while? Всегда показывает «Error pinging server ...», предотвращающий отображение первой страницы? И что вы, ребята, думаете, что это самый подходящий способ для меня повторить подключение к серверу?