VB.Netissä on projekti, joka on yhteydessä palvelimeen. Miten saadaan mahdollisimman nopeasti yhteys palvelimeen ilman "turhia" latausaikoja? Tyhmäähään tuo olisi lähettää kaikki data WebBrowser-objektilla.
Tietoja lähetetään palvelimelle 2 sekunnin kuluttua edelliseen tietoryppään lähettämisestä. Eli siis suhteellisen tiivisti.
Niin siis ollaanko tässä tekemässä palvelinta myös itse, vai onko palvelin jo olemassa ja tukee jotain tiettyä protokollaa/protokollia?
Mahdollisimman nopeaa olisi varmaan lähettää UDP-paketteja palvelimelle. Varsinkin jos muutaman paketin hukkuminen matkalla ei haittaa, niin tämä olisi varmaan paras vaihtoehto.
Sitten jos pakettien perille meno on tärkeää, niin avaisin ehkä TCP-putken ja lähettäisin sinne tavaraa sen kahden sekunnin välein.
Palvelin ei ole oma. Minulla on vain kotisivutilaa siellä.
Muuta en osaa selittää.
Mitenkäs nämä kaikki hienot putket toteutetaan? Luultavasti vaikeaa?
Eli siis ilmeisesti siihen otetaan http-protokollalla yhteyttä...
Varmaan jotain seuraavilla linjoilla voisi olla toimiva:
Dim url = "http://palvelimen.osoite/sivu.php?data=" & _ System.Web.HttpUtility.UrlEncode(LähetettäväData) Dim response = System.Net.WebRequest.Create(url).GetResponse()
Niin response
sisältää sitten vai palautuvan arvon (HTML-koodin)? Tarkoitus olisi siis myös vastaanottaa lähetetyn datan palautus.
Kyllä. Laiskotti sen verran ettet viitsinyt kokeilla?
Sinänsä hassua että senkin tuohon kirjoitin, vaikka alkuperäisessä viestissä puhuit ainoastaan lähettämisestä. No, joskus käy tuuri.
Tuon System.Web.HttpUtility:n käyttämiseksi joudut laittamaan projektiin referencen System.Web:iin. Yleensä löytyy seuraavasta paikasta:
C:\Program Files\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.
Aika outua tosin, että itse en saanut tuota äsken otettua mukaan VB.NET-projektiin. C# puolella toimi normaalisti ja pitäisihän sen toimia VB.Netissäkin.
Laitoin refen (onnistui). Silti ei edelleenkään toimi.
No, mikä siinä ei toimi? Jokin virheilmoitus kenties? Onko osoitteet ja muut oikein. Ainakin seuraava toimi itselläni vallan mainiosti...
Dim url = "http://grez.info/" Dim response = System.Net.WebRequest.Create(url).GetResponse()
Niin, ja siis response sisältää vastauksen WebResponse-objektina eli jos haluat sitä merkkijonoa niin se tietenkin täytyy vielä lukea sieltä. (Alunperinhän et ollut sitä pyytänyt niin en ollut laittanut turhaa käsittelyä siihen).
Ideana ei muutenkaan ollut kirjoittaa ohjelmaa kokonaan puolestasi.
Edit: No laitan nyt silti
Dim url = "http://grez.info/" Dim response = System.Net.WebRequest.Create(url).GetResponse() Dim sr = New System.IO.StreamReader(response.GetResponseStream()) Dim htmlDokumentti = sr.ReadToEnd() sr.Close() response.Close()
Nyt toimii.
Pitää vielä netistä tutkiskella tuota WebResponse-objektia, ellet nyt nopeaa vastausta osaa antaa
Edit 1: Nyt toimii, kun esimerkinkin annoit.
Edit 2: Ikävästi tuo merkistökoodaus. Ääkköset kysymysmerkkeinä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.