Page 4 of 8
Re: CoolBasic & netti = cbNetwork
Posted: Thu May 21, 2009 4:54 pm
by axu
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?
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.
Re: CoolBasic & netti = cbNetwork
Posted: Sun May 24, 2009 4:02 am
by valscion
axu wrote: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?
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.
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ä.
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(12.9.2010): Fixasin linkit.
EDIT(15.11.2011): Jännät PHP-syntaksivärjäykset.
Re: CoolBasic & netti = cbNetwork
Posted: Tue May 26, 2009 6:36 pm
by MaGetzUb
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ä..
Re: CoolBasic & netti = cbNetwork
Posted: Tue May 26, 2009 7:06 pm
by Jani
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ä..
Tämä oli muistaaksesi merkin ":" edessä Client_ID muuttujassa.
Re: CoolBasic & netti = cbNetwork
Posted: Fri Jun 12, 2009 10:55 pm
by valscion
Henkru 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.
http://msdn.microsoft.com/en-us/library ... S.60).aspx
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.
Re: CoolBasic & netti = cbNetwork
Posted: Thu Jun 18, 2009 1:58 pm
by JATothrim
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. :/
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.
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 21, 2009 11:21 pm
by phons
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
Posted: Sun Jun 21, 2009 11:37 pm
by JATothrim
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)
Re: CoolBasic & netti = cbNetwork
Posted: Mon Jun 22, 2009 1:21 am
by valscion
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.
Re: CoolBasic & netti = cbNetwork
Posted: Fri Jun 26, 2009 3:46 am
by MaGetzUb
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?
Re: CoolBasic & netti = cbNetwork
Posted: Fri Jun 26, 2009 8:27 pm
by valscion
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.
Re: CoolBasic & netti = cbNetwork
Posted: Fri Jun 26, 2009 10:43 pm
by Koodiapina
Voit muuten ladata CoolBasicilla videoita netistä ilman DLL-sähellyksiäkin.
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 3:05 am
by MaGetzUb
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.
Huomasinkin sen, koska youtubea tutkiessani en löytänyt .flv päätteisiä Urleja, kun taas löysin .swf päätteisä url:eija funnygamesista.
Grandi wrote:Voit muuten ladata CoolBasicilla videoita netistä ilman DLL-sähellyksiäkin.
Grandi, kerrohan toki miten olisi mahdollista?
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 3:44 am
by Koodiapina
programmer of DSG wrote:Grandi, kerrohan toki miten olisi mahdollista? :D
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.
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 4:09 am
by MaGetzUb
Grandi wrote:programmer of DSG wrote:Grandi, kerrohan toki miten olisi mahdollista?
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.
En kyllä tiedä, Mavin pukkas..
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 7:23 am
by Latexi95
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.
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 10:58 am
by Viltzu
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
Posted: Sun Jun 28, 2009 11:24 am
by phons
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.
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.
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 11:41 am
by DatsuniG
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.
Re: CoolBasic & netti = cbNetwork
Posted: Sun Jun 28, 2009 7:01 pm
by Latexi95
Hyvinhän tuo kieltämättä kuului.