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.