Mielestäni se voisi toimia näin(en sitten ole mikään PHP/cbNetwork asiantuntija): Kun halutaan kirjautua ohjelmaan/peliin niin ohjelma lähettää http pyynnön, jossa käyttäjänimi ja salasana sisällytetään urliin php:lle HTTPGet() funktiolle sopivaksi ja tämä sitten antaa normaalin html sivun sijasta tiedoston joka sisältää tiedon siitä, onnistuiko kirjautuminen. Ohjelma lukee sen sitten funktiolla HTTPLoadContent() ja hakee sieltä tiedon annetaanko käyttäjän mennä eteenpäin. Mielestäni pitäisi toimia, mutta Phptä pitäisi osata myös.programmer of DSG wrote:Jos tekisi omat foorumit, siellä sitten pitäisi rekisteröityä pelin käyttäjäksi, niin miten tämä onnistuisi? Kun kirjoittaisi nimen ja salasanan ohjelmassa, niin pääsisi servu valikkoon ja sieltä joinimaan peliin. Miten asia tapahtuisi käytännössä, jos se on edes mahdollista cb:n networkilla?
CoolBasic & netti = cbNetwork
Re: CoolBasic & netti = cbNetwork
Re: CoolBasic & netti = cbNetwork
Jep, aika paljon niinkuin axu sanoi. Tosin, tiettyä varovaisuutta pitää käyttää kun siirretään tietoa niin, että sitä voidaan muokata matkalla. Sinun olisi pitänyt tehdä foorumeillasi oma PHP-tiedosto, jossa tarkistaisit URL:iin kirjoitetun nimen ja salasanan perusteella onnistuuko sisäänkirjautuminen ja sitten palauttaa vaikka MD5-hash nimen, salasanan ja jonkin salaisen merkkijonon yhdistelmästä.axu wrote:Mielestäni se voisi toimia näin(en sitten ole mikään PHP/cbNetwork asiantuntija): Kun halutaan kirjautua ohjelmaan/peliin niin ohjelma lähettää http pyynnön, jossa käyttäjänimi ja salasana sisällytetään urliin php:lle HTTPGet() funktiolle sopivaksi ja tämä sitten antaa normaalin html sivun sijasta tiedoston joka sisältää tiedon siitä, onnistuiko kirjautuminen. Ohjelma lukee sen sitten funktiolla HTTPLoadContent() ja hakee sieltä tiedon annetaanko käyttäjän mennä eteenpäin. Mielestäni pitäisi toimia, mutta Phptä pitäisi osata myös.programmer of DSG wrote:Jos tekisi omat foorumit, siellä sitten pitäisi rekisteröityä pelin käyttäjäksi, niin miten tämä onnistuisi? Kun kirjoittaisi nimen ja salasanan ohjelmassa, niin pääsisi servu valikkoon ja sieltä joinimaan peliin. Miten asia tapahtuisi käytännössä, jos se on edes mahdollista cb:n networkilla?
Lue URL GetHTTPStringillä ja jos takaisin tuli se odotettu hash, niin saat mennä eteenpäin. Itse ohjelman puolellahan olisi tietysti myös generoitu se MD5-hash käyttämällä CBKK:sta löytyvää MD5-funktiota
Tässä olisi muuten esimerkki, miten voi lähettää hiscoret turvallisesti nettiin (katso koodin alussa olevat kommentit):
Code: Select all
'*** CB ***'
// Käyttää CBKK:sta funktioita:
// MD5 -> http://vesq.org/filestorage/cbkk/MD5.CB <-- Tämä täytyy ladata jos haluaa testata
// URLEncode -> http://vesq.org/filestorage/cbkk/URLEncode.CB
// GetHTTPString -> http://vesq.org/filestorage/cbkk/GetHTTPString.CB
Include "cbNetwork.cb"
Const HISCORES_PASSPHRASE = "ki#&3$&U"
Function SendHiScore(_nickname$, _score)
// Luo MD5-hash, jonka avulla haxaajat eivät onnistu lisäilemään omia tuloksiaan
hash$ = MD5(_nickname + _score + HISCORES_PASSPHRASE)
url$ = "http://www.oman-sivustosi-url-tulee-tahan.fi/hiscores.php"
url$ = url$ + "?nick=" + URLEncode(_nickname$)
url$ = url$ + "&score=" + _score
url$ = url$ + "&hash=" + hash$
Return GetHTTPString(url)
EndFunction
//------------------------------------------------------------------
// *URLEncode by Bagard*
// http://cbkk.systec.fi/koodi.php?id=75
// -> "Funktio koodaa erikoismerkit oikeaan muotoon URL:sta.
// Kätevä mm. nettipistelistaa tehtäessä. "
//------------------------------------------------------------------
Function URLEncode(url$)
For i = 1 To Len(url$)
char = Asc(Mid(url$, i, 1))
If (char <= 47) Or (char >= 58 And char <= 64) Or (char >= 91 And char <= 96) Or (char >= 123) Then
merkki$ = "%" + Right(Hex(char), 2)
Else
merkki$ = Chr(char)
EndIf
uusi$ = uusi$ + merkki$
Next i
Return uusi$
EndFunction
//------------------------------------------------------------------
// *GetHTTPString by VesQ aka OonSuomesta*
// http://cbkk.systec.fi/koodi.php?id=177
// -> "Funktio lataa merkkijonoon nettisivun sisällön ja palauttaa sen."
//------------------------------------------------------------------
Function GetHTTPString$(_path$)
nRet = HTTPGet(_path)
// Tuli jotain muuta kuin olisi pitänyt
If nRet <> 200 Then Return False
HTTPLoadContent()
For i = 1 To HTTP_ContentLength
palautus$ = palautus + Chr(_Net_GetByte())
Next i
Return palautus
EndFunction
//Esimerkkiohjelma:
return_string$ = SendHiScore("Erkki Esimerkki", 15200)
MakeError return_string$
Code: Select all
<?php
/*** hiscores.php ***/
// Tämä on siis se PHP-puoli :)
define("PASSPHRASE", "ki#&3$&U");
$name = stripslashes(urldecode($_GET["nick"]));
$score = $_GET["score"];
$hash = $_GET["hash"];
$server_hash = MD5($name . $score . PASSPHRASE);
echo ( $server_hash === $hash ) ? "ok" : "fail";
?>
EDIT(15.11.2011): Jännät PHP-syntaksivärjäykset.
Last edited by valscion on Tue Nov 15, 2011 3:41 pm, edited 4 times in total.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: CoolBasic & netti = cbNetwork
Kiitos, tuo selvensi jo paljon minulle, vaikka ei vielä paljoa netin kikkoja ymmärrä..
Mites saanko selville cbNetworkillä IP:n? Teen varmaan jonkun Antihack ohjelman, joka jakelee IP bännejä..
Mites saanko selville cbNetworkillä IP:n? Teen varmaan jonkun Antihack ohjelman, joka jakelee IP bännejä..
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: CoolBasic & netti = cbNetwork
Tämä oli muistaaksesi merkin ":" edessä Client_ID muuttujassa.programmer of DSG wrote:Kiitos, tuo selvensi jo paljon minulle, vaikka ei vielä paljoa netin kikkoja ymmärrä..
Mites saanko selville cbNetworkillä IP:n? Teen varmaan jonkun Antihack ohjelman, joka jakelee IP bännejä..
Dead men tell no tales. Also, Python rocks!
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Codegolf: 99 bottles of beer (oneliner) - Water map partition
Re: CoolBasic & netti = cbNetwork
http://msdn.microsoft.com/en-us/library ... S.60).aspxHenkru wrote:EDIT2.
Tutkin tuota funktio listaa sen verran vielä et osui silmään vielä ClientState() funktio ja sen tarkoitus? Marocerilta oisi ollut kyllä kiva jonkun lainen dokumentaatio.
Veikkaisin, että ClientState() funktio palauttaa tuon ylläolevan sivun mukaisen tilan. Tein pikatestin, joka paljasti sen että chattiesimerkin aikana ClientState()-funktion paluuarvo vaihtelee 0-2 välillä, eli vaikuttaisi tukevan veikkaustani.
Last edited by valscion on Sun Aug 16, 2009 12:14 am, edited 2 times in total.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: CoolBasic & netti = cbNetwork
Argh... Laitanpa tämän tänne kun en KOLMANNELLAKAAN uudelleenkirjoitus kerralla saanut toimimaan.
Kyseessä on siis "Asiakas <-> Palvelin" pohja.
Olisin hyvin kiitollinen jos löydätte virheen/bugin miksi Asiakas ei saa yhteyttä Palvelimeen. Asikaan puolella heittää aina, SIIS AINA, jonkin ClientRead():n palauttaman virheen jonka seurauksena ohjelma kaatuu siihen. Tällä hetkellä Asiakas lykkää kymppitonni-kolmekasia. Kommentoin Asiakaan niin, että kun yhdistetään lähetetään pelkää idleä koko ajan. Palvelin vastaa takaisin idlellä ilman 300 rivin lisähärpäkkeitä. Mutta Yksinkertaisuudestaan huolimatta homma kusee. Älkää Epäilkö modattua cbNetWork.cb sorsaa, sillä käänsin ChatClient.cb ja ChatServer ohjelmat tuolla includella eikä ongelmia ollut. :/
Kyseessä on siis "Asiakas <-> Palvelin" pohja.
Olisin hyvin kiitollinen jos löydätte virheen/bugin miksi Asiakas ei saa yhteyttä Palvelimeen. Asikaan puolella heittää aina, SIIS AINA, jonkin ClientRead():n palauttaman virheen jonka seurauksena ohjelma kaatuu siihen. Tällä hetkellä Asiakas lykkää kymppitonni-kolmekasia. Kommentoin Asiakaan niin, että kun yhdistetään lähetetään pelkää idleä koko ajan. Palvelin vastaa takaisin idlellä ilman 300 rivin lisähärpäkkeitä. Mutta Yksinkertaisuudestaan huolimatta homma kusee. Älkää Epäilkö modattua cbNetWork.cb sorsaa, sillä käänsin ChatClient.cb ja ChatServer ohjelmat tuolla includella eikä ongelmia ollut. :/
EDIT:
Hips. Raa'alla bugien tuho voimalla(tm) Korjasin tilanteen, itseasiassa erittäin hyvin. Palvelin/asiakas ei töki/kaadu vaikka localhostissa oli kymmenen asiakasta auki. Asiakkaiden listaus toimii kuin junanvessa.
- Attachments
-
- Net_Template.zip
- Lahja teille, jos saatte sen toimiaan :)
- (1.26 MiB) Downloaded 515 times
-On selkeästi impulsiivinen koodaaja joka...
Re: CoolBasic & netti = cbNetwork
Hei, onko mitenkään mahdollista lähettää, clientille joku file. Siis ei mistään sivulta, vaan suoraan serveriltä. Enkä nyt tarkoita pientä teksti tiedostoa jonka sisällön voi lähettää erikseen. Vaan esim. jonkun biisin lähettämistä, tai vaikka sen soittamista clientillä serverin kautta, tai kuvien katselu, tai jotain...
Re: CoolBasic & netti = cbNetwork
Mahdollistahan tuo on. Toteutus vain uuppuu. Tosin musiikin suora-streaminen suoraan clientiltä (tai serveritä) clientille, on mahdotonta nykyisillä netti palikoilla. (liian hidasta) Itse Koetan juuri tehdä tuommosta tiedostonsiirto juttua. Jos tiedosto ei mahdu pakettiin (on isompi kuin 4000 tavua) pitää se pilkoa osiin ja lähettää palasina. Toisessa päässä palasina saapunut tiedosto pitää osata tietenkin kasata ehjäksi ja 100% varmasti, koska dataa ei saa uuppua. (esim jos siirretään jokin .exe)
-On selkeästi impulsiivinen koodaaja joka...
Re: CoolBasic & netti = cbNetwork
UDP on tiedostojen siirrossa errrittäin huono ja virhealtis protokolla, koska sillä ei tarkisteta, tulevatko paketit oikeassa järjestyksessä perille vai saapuvatko ne edes. Näin siis voi hyvinkin jokin elintärkeä paketti jäädä uupumaan ja ohjelma/biisi toimiikin varsin omituisella tavalla.
Mutta ainahan sitä saa testata olisi hauska nähdä jotain cbNetworkilla toteutettua tiedostonjako-koodinpätkää, ihan vain mielenkiinnonkin vuoksi.
Mutta ainahan sitä saa testata olisi hauska nähdä jotain cbNetworkilla toteutettua tiedostonjako-koodinpätkää, ihan vain mielenkiinnonkin vuoksi.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
Re: CoolBasic & netti = cbNetwork
Mitenkä voisi tehdä cbNetworkillä ohjelman, jolla voisi ladata videoita youtubesta? (.flv?) En ymmärrä Http scriptiä, enkä löydä siitä mitään vinkkiä missä se video voisi piileskellä. Onhan se ohjelma tehty, jolla voi ladata pelejä funnygames.biz:stä, niin eikö tuon homman pitäisi luonnistua samalla tavalla?
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: CoolBasic & netti = cbNetwork
YouTuben HTML-lähdekoodissa ei ole varsinaisesti niitä youtuben videoiden lähteitä merkattu. Videotiedoston URL pitäisi kaapata HTTP-virrasta (jos näin voi sanoa) eikä cbNetwork siihen pysty. Funnygames.biz:stä voi taas ladata pelejä vain parsimalla tietyn pelin kohdalta sen osoite HTML-koodista ja siksi siihen ei siis vaadita muita kuin normaaleja lataus-funktioita.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: CoolBasic & netti = cbNetwork
Voit muuten ladata CoolBasicilla videoita netistä ilman DLL-sähellyksiäkin.
Re: CoolBasic & netti = cbNetwork
Huomasinkin sen, koska youtubea tutkiessani en löytänyt .flv päätteisiä Urleja, kun taas löysin .swf päätteisä url:eija funnygamesista.VesQ wrote:YouTuben HTML-lähdekoodissa ei ole varsinaisesti niitä youtuben videoiden lähteitä merkattu. Videotiedoston URL pitäisi kaapata HTTP-virrasta (jos näin voi sanoa) eikä cbNetwork siihen pysty. Funnygames.biz:stä voi taas ladata pelejä vain parsimalla tietyn pelin kohdalta sen osoite HTML-koodista ja siksi siihen ei siis vaadita muita kuin normaaleja lataus-funktioita.
Grandi, kerrohan toki miten olisi mahdollista?Grandi wrote:Voit muuten ladata CoolBasicilla videoita netistä ilman DLL-sähellyksiäkin.
Solar Eclipse
We're in a simulation, and God is trying to debug us.
-
- Forum Veteran
- Posts: 2396
- Joined: Tue Aug 28, 2007 4:20 pm
Re: CoolBasic & netti = cbNetwork
Olikohan se niin, että playanimation-komento pystyi lataamaan videon suoraan netistä. Kuvaruudun koko vain piti olla säädetty oikeaksi ja latautumista odottaa melko kauan. Vaikea muistaa varmaksi, kun kyseisen ominaisuuden löytymisestä on aikaa useampi vuosi eikä itselläni ole nyt CoolBasicia testaamiseen.programmer of DSG wrote:Grandi, kerrohan toki miten olisi mahdollista? :D
Re: CoolBasic & netti = cbNetwork
En kyllä tiedä, Mavin pukkas..Grandi wrote:Olikohan se niin, että playanimation-komento pystyi lataamaan videon suoraan netistä. Kuvaruudun koko vain piti olla säädetty oikeaksi ja latautumista odottaa melko kauan. Vaikea muistaa varmaksi, kun kyseisen ominaisuuden löytymisestä on aikaa useampi vuosi eikä itselläni ole nyt CoolBasicia testaamiseen.programmer of DSG wrote:Grandi, kerrohan toki miten olisi mahdollista?
Solar Eclipse
We're in a simulation, and God is trying to debug us.
Re: CoolBasic & netti = cbNetwork
Vinkkinä vaan, että esim. Youtuben sivu, millä videota toistetaan ei riitä lataus osoitteeksi,
koska varsinainen video on tallennettu tietääkseni toisaalle. Sinun pitää löytää videon oikea osoite.
Eli oikean sivun pääte vastaa videon tiedosto päätettä. Ainakin "lahjoitan musiikkia projekteihinne" viestiketjussa olevat osoitteet viittaavat suoraan kappaleeseen, joten niiden toistaminen onnistuu todennäköisesti PlaySound komennolla.
koska varsinainen video on tallennettu tietääkseni toisaalle. Sinun pitää löytää videon oikea osoite.
Eli oikean sivun pääte vastaa videon tiedosto päätettä. Ainakin "lahjoitan musiikkia projekteihinne" viestiketjussa olevat osoitteet viittaavat suoraan kappaleeseen, joten niiden toistaminen onnistuu todennäköisesti PlaySound komennolla.
Re: CoolBasic & netti = cbNetwork
Itse en ääntä kuullut PlaySoundilla, kyllä se siinä jotain latasi ja melko kauan, mutta sen jälkeen ei kuulunut mitään. LoadSoundilla taas tulee virheilmoitus. Videon lataamista en nyt kyllä taida testata, mutta mielestäni myytti että PlaySound voisi soittaa netistä on murrettu.
Re: CoolBasic & netti = cbNetwork
En ole kokeillut, tuota mutta minusta se ei ole murrettu... Jos kerta viedot toimii(TESTATTU) niin miksei musiikki toimisi, ehkei se vain osannut soitta sitä\sulla oli kaiuttimet pois päältä\et kuunnellut tarpeeksi tarkasti\äänikortti rikki\sulla luki PlaySound file$,0\tai jotain muuta... mahdollisuuksia on paljon.Viltzu wrote:Itse en ääntä kuullut PlaySoundilla, kyllä se siinä jotain latasi ja melko kauan, mutta sen jälkeen ei kuulunut mitään. LoadSoundilla taas tulee virheilmoitus. Videon lataamista en nyt kyllä taida testata, mutta mielestäni myytti että PlaySound voisi soittaa netistä on murrettu.
Re: CoolBasic & netti = cbNetwork
Kyllä minulla ainakin kuului tuo musiikki. Ja koodin pätkähän oli tämä:
Code: Select all
PlaySound "http://tormen.org/sound/Tormen_Sleepaway.mp3"
WaitKey
EDIT:
Ja niin latautumista ei tarvinnut odottaa kuin muutama sekunti.
Hengität nyt manuaalisesti.
Re: CoolBasic & netti = cbNetwork
Hyvinhän tuo kieltämättä kuului.