Alue on tällä viestiketjulla vähän sekava, muta kyllä se tähän liittyy.
Ongelmana on tiedon välittäminen. Eli minulla olisi Visual Basic-sovellus joka lähettäisi ja lukisi salattuja tietoja internetin kautta. Palvelin on mbNetin palvelin (sivuja en vielä ole tehnyt, mutta avain tuonne on). Ajattelin tätä:
Miten tuon tekisi?
Teet PHP-skriptin, joka lukee ja toisen, joka lähettää.(Jos ihan pakko käyttää PHP:tä, VB:llä olisi nimittäin omiakin kirjastoja verkkosovelluksiin)
Kuten nettisivujen kanssa yhteys ipipipipip.domainsystemu/vastaanotin.php ja siihen POSTailua ja GETtailua. Lähetät saadut tiedot PHP:llä, joko suoraan VB-ohjelmalle tai jonnekin, mistä VB-ohjelma lukee sen.
Ja sitten lähetely PHP:n käynnistys, ja se lukee tiedot, joko VB:ltä tai jostain, minne VB on ne putkauttanut. Ja lähettää ne toinenip.domainsystemu/vastaanotin.php
MBnetin kotisivutila tuskin tukee HTTPS-protokollaa, joten jos tarvitset salausta, pitää sinun tehdä HTTP:n päällä toimiva salattu protokolla.
Mutta miksi liikenne pitää välttämättä kierrättää MBnetin palvelimen kautta?
Välityspalvelinta käytettäessä ei käyttäjä tosin joudu tekemään porttiohjauksia tms. Olisi kuitenkin varmasti paljon helpompi toteuttaa systeemi ilman ylimääräistä palvelinta.
Käytännössä tietoa ei voida lähettää MBnetin palvelimelta käyttäjälle, vaan asiakasohjelman on otettava aina välillä yhteys MBnetin palvelimeen ja tarkistettava, onko sinne tullut uutta tietoa.
Olisi myös helpompi auttaa, jos kertoisit vähän lisätietoja kyseisestä VB-sovelluksesta.
No voi sen varmaan ilman palvelinta tehdä.
VB:stä sen verran että:
'näin sub formiload (sender as object, e as eventargs) handles mybase.load 'formilla WebBrowser nimeltä WEB WEB.url = new system.net.uri("www.mbnet.fi/kone3/msgup.htm") 'ei vielä olemassa end sub sub TähänKuuluu_Button1_clickki WEB.url = new system.net.uri("www.mbnet.fi/kone3/msgdown.htm") 'ei vielä olemassa end sub
(Mod. huom: Mitähän ihmeen järkeä oli yrittää laittaa vielä erikseen linkkejä sivuihin, joita ei ole ja joiden osoiteet kuka tahansa osaa lukea koodistasi?)
WebBrowser-komponentti ei todellakaan ole järkevä ratkaisu. Sen sijaan WebClient saattaisi olla juuri sinulle sopiva.
Module Kysyja Function juttele(data As String) As String Dim wc = New System.Net.WebClient() wc.Encoding = System.Text.Encoding.UTF8 System.Net.ServicePointManager.Expect100Continue = False Return wc.UploadString("http://hopohopo/juttele.php", data) End Function Sub Main() System.Console.WriteLine("Kysymys: 1 + 1 = 2, tiesitkö?"); System.Console.WriteLine("Vastaus: " + juttele("1 + 1 = 2, tiesitkö?")) System.Console.WriteLine("Kysymys: 1 * 1 = 2, eikö niin?"); System.Console.WriteLine("Vastaus: " + juttele("1 * 1 = 2, eikö niin?")) End Sub End Module
<?php // Tarkistetaan merkistöasiat: header("Content-Type: text/plain; charset=UTF-8"); if ("ä" != "\xC3\xA4") { echo "Tallenna PHP-tiedosto UTF-8-muodossa!"; trigger_error("Skripti ei ole UTF-8-muodossa!"); } // Luetaan data ja tulostetaan vastaus. $data = file_get_contents('php://input'); if ($data == "1 + 1 = 2, tiesitkö?") { echo "Joo, selvä homma."; } else { echo "Mitä ihmettä?"; }
En pääse vielä testaamaan. Näyttää hyvältä!
Aihe on jo aika vanha, joten et voi enää vastata siihen.