Jak połączyć się z programem przez internet?

0

Witam.
Jaki jest najprostrzy sposób na to, żeby wydać programowi polecenia przez i internet w Visual Stuido C#?
Chcę uzyskać efekt typu:

if(wydano polecenie, albo wartość, którą będe zdalnie edytował == 1)
{
   //kod
}

Myślałem nad odbieraniem wiadomości e-mail przez program, ale to bardzo dużo roboty, której póki co przy moich możliwościach nie jestem wstanie zrobić. Przez bazę danych to nie wiem, czy takie coś w if pójdzie.

Może da się to zrobić, że np. program będxie łączył się ze stroną, której będe edytował treść i da się to podciągnąć pod if?

Albo jakimś jeszcze innym sposobem da się przez internet zmienić działanie programu?
Napiszcie, jak najprościej coś takiego osiągnąć, dopiero zaczynam programować w Visual Studio C#, więc trudniejszych rzeczy mogę nie dać rady zrobić.

0

Zacznij od podstaw, bo jak ich nie znasz to i tak nic z tego nie wyjdzie...

A co do komunikacji takiej jak chcesz to możesz zobaczyć SignalR.

1
using (WebClient wc = new WebClient())
{
    string result = wc.DownloadString("http://twojastrona.pl/a.txt");
    if(result == "1")
    {
        MessageBox.Show("Wybrano jeden.");
    }
    else
    {
        MessageBox.Show("Inna wartość");
    }
}
0

Dzięki @BiałyTerrorysta
Lekko przerobiłem, bo to twoje nie do końca działało, ale ogół mi podpowiedziałeś

using System.Net;
private void button1_Click(object sender, EventArgs e)
        {
            WebClient wc = new WebClient();

            try
            {
                string result = wc.DownloadString("http://jakasstrona.pl/kod.txt");
                if (result == "1")
                {
                    MessageBox.Show("Wybrano jeden.");
                }

                if (result == "2")
                {
                    MessageBox.Show("Wybrano dwa.");
                }
            }
            catch (Exception)
            {

                MessageBox.Show("Jestes offline");
            }

        }

Podpiąłem to pod buttona, ale chciałbym żeby to łączenie odbywało się automatycznie co np. minutę, żeby można było na bieżąco aktualizować bez ponownego wciskania przycisku. Jako, że nie znam zbytnio C# (zawsze programowałem tylko w JS) to nie wiem, jak zrobić taki timer. Pomożecie? (Myślę, że nie jest to odchodzenie od tematu wątku, bo nadal tyczy się to łączenia, więc pisze tutaj, bo zakładanie wątku do takiej pewnie prostej rzeczy byłoby bezsensowne.)

0

Po pierwszym poście myślałem, że chodziło ci o komunikację real-time.

Masz pierwszy przykład z brzegu do timera - https://msdn.microsoft.com/pl[...]m.timers.timer(v=vs.110).aspx

Albo pętla nieskończona z await Task.Delay(TimeSpan.FromMinutes(1)); na końcu.

0

Zmieniłeś sobie ten kod akurat tak, że zrobiłeś pięknego memory leaka. Biały Terrorysta po coś użył klauzuli "using" na rzecz WebClient. WebClient implementuje interfejs IDisposable, a więc wymaga zwolnienia po wykonaniu działań. Ty go tworzysz za każdym razem i nigdy nie zwalniasz. USING użyte w taki sposób, w jaki zrobił to Biały Terrorysta, automatycznie zwalnia taki obiekt, który wyjdzie z zakresu.

Jeśli nie chcesz wykorzystywać z jakiegoś powodu klauzuli using, to wywołaj na tym obiekcie metodę Dispose() po skończeniu działań.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0