Мне нужно проверить статус любых компьютеров в моей локальной сети. Но мой код не эффективен, потому что в нем очень длинный ответ. Я пробовал темы, эта проверка работает на фоне. Но мне нужна более быстрая проверка. Моя программа работает как клиент-сервер.Проверить статус на сервере с определенным портом
В моей основной программе мне нужно написать доступные компьютеры до listbox. Пример:
Мой главный клиент хочет получить компьютеры в локальной сети. Компьютеры имеют сервер работает на порту . Но, когда я хочу найти доступные компьютеры, в этом слишком длинный ответ.
Переменные
string message = "!";
string temp = "";
public static string list = "";
Checker доступные компьютеры:
public static void checker()
{
string IP;
int statResp = 0;
for (int i = 1; i < 10; i++)
{
IP = "192.168.0." + i;
string msg = "!";
try
{
Int32 port = 13000;
TcpClient client = new TcpClient(IP, port);
Byte[] data = System.Text.Encoding.ASCII.GetBytes(msg);
msg = "!";
NetworkStream stream = client.GetStream();
stream.Write(data, 0, data.Length);
data = new Byte[256];
String responseData = String.Empty;
Int32 bytes = stream.Read(data, 0, data.Length);
responseData = System.Text.Encoding.ASCII.GetString(data, 0, bytes);
if (responseData == " " || responseData == "!")
{
statResp = 1; // response is correct server runs
}
stream.Close();
client.Close();
}
catch (ArgumentNullException)
{
continue; // continue with next iteration
}
catch (SocketException)
{
continue; // continue with next iteration
}
if (statResp == 1)
{
list = IP; // list is variable
}
}
}
ТАЙМЕР - Проверка данных в списке переменная
private void timer2_Tick(object sender, EventArgs e)
{
if (temp != list)
{
listBox1.Items.Add(list);
temp = list;
}
}
Если список переменная имеет то же значение, что и у temp переменная, старый адрес не будет добавлен в список.
Я отредактировал ваше название. Пожалуйста, смотрите: «Если вопросы включают« теги »в их названиях?] (Http://meta.stackexchange.com/questions/19190/), где консенсус« нет, они не должны ». –