Chat - avoimen lähdekoodin ketjuprojekti

Jaa meneillään olevat projektisi tai valmiit pelit muun yhteisön kanssa täällä.
Post Reply
DJ-Filbe
Devoted Member
Posts: 854
Joined: Sat Feb 20, 2010 2:18 pm

Chat - avoimen lähdekoodin ketjuprojekti

Post by DJ-Filbe »

Olen tehnyt eräänlaisen paikallis-chatin, joka vaatii toimiakseen sen, että jokainen chattiin osallistuva tietokone voi ajaa chat-ohjelmaa samasta kansiosta (esimerkkinä sijoitat ohjelman Windowsissa Julkinen -kansioosi ja kytket tiedostojen jakamisen päälle verkkoasetuksista).

- Siirrä Chat.exe jaettuun kansioon
- Käynnistä ohjelma tästä kansiosta niin monella tietokoneella kuin haluat ja anna käyttäjänimi kaikille koneille chattiin
- Chattaile:
* voit keskustella tavallisen chatin tapaan tai
* voit siirtää omia tiedostojasi tai ohjelmiasi julkiseen kansioon ja avata niitä toisen koneelta kirjoittamalla: kaverin_nimimerkki start ohjelma.exe /valinnaiset_parametrit
* voit vaikka avata kaverin koneesta nettisivun tyyliin: kaveri start http://osoite.com


Tarkoitus olisi jatkaa tätä projektia kehittämällä paranneltu, ehkä jopa netissä toimiva versio.
Jokainen saa halutessaan jatkaa chattia ja postata lähdekoodin tänne ;)

Code: Select all

//koodi on purkkaa ja voi sisältää osittain turhaa koodia muokkausten vuoksi
SCREEN 640,480
Global myUserId
Global myusername$
Type viesti
	Field msg$
EndType

Repeat
	Locate 0,440
	myusername=Input("Syötä käyttäjänimesi: ")
	DrawScreen
Until KeyUp(28)
CloseInput
temp=FileSize("newmessage"+myuserid)
f=opentoedit2("newmessage"+myuserid)
SeekFile f, temp
WriteLine f, "- "+myusername+" kirjautui sisään -"
CloseFile f
alku:
aika=Timer()
Repeat

	
	For v.viesti = Each viesti
		Delete v
	Next v
	If FileExists("newmessage"+myuserid) then 
		f=OpenToRead("newmessage"+myuserid)
		Repeat
			mes$=ReadLine(f)
			v.viesti=New(viesti)
			v\msg=mes
		Until mes=""
		CloseFile f
	EndIf
	temp=0
	For v.viesti = Each viesti
		temp+1
	Next v
	
	For v.viesti = Each viesti
		temp-1
		If v\msg <> "" Then dig$=v\msg
		Text 20,400-(temp*20), v\msg
	Next v
	If InStr(dig,myusername+" start ") Then 
		Execute Mid(dig, InStr(dig,myusername+" start ")+Len(myusername+" start "))
		fs=FileSize("newmessage"+myuserid)
		a=opentoedit2("newmessage"+myuserid)
		SeekFile a, fs
		WriteLine a, myusername+" käynnisti onnistuneesti toiminnon "+Mid(dig, InStr(dig,myusername+" start ")+Len(myusername+" start "))
		CloseFile a
	EndIf
	lähtevä$=Input(myusername+" sanoo: ")
	myuserid = myuserid + KeyUp(200) - KeyUp(208)
	SetWindow "Keskusteluikkuna: "+myuserid+" - WlanMSN by "
	DrawScreen
Until KeyUp(28) And lähtevä <> ""
CloseInput
fs=FileSize("newmessage"+myuserid)
a=opentoedit2("newmessage"+myuserid)
SeekFile a, fs
WriteLine a, "<"+myusername+"> "+lähtevä
CloseFile a
Goto alku


Function opentoedit2(filu$)
	Execute "ATTRIB +h "+filu
	Return OpenToEdit(filu)
EndFunction

Function opentowrite2(filu$)
	Execute "ATTRIB +h "+filu
	Return OpenToWrite(filu)
EndFunction
Chattia voi testailla omalla koneella yksinkin avaamalla kaksi tai useampia chat-ikkunoita.
Voit myös käyttää välilehtiä (ks. ikkunan yläpalkki) ja vaihtaa keskusteluikkunaa nuolista.
EDIT:

Niin ja sitten toivoisin mielellään rakentavaa palautetta.. tai oikeastaan koodin korjausta jos/kun siinä (tod.näk.) on jtn valittamista :)

Last edited by DJ-Filbe on Mon Apr 21, 2014 11:54 pm, edited 1 time in total.
Latexi95
Guru
Posts: 1166
Joined: Sat Sep 20, 2008 5:10 pm
Location: Lempäälä

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Latexi95 »

Ota tämä sitten rakentavana palautteena.
Idea on ihan OK, mutta toteutus kusee. Älä käytä komentoriviä! Se pomppaa vähän väliä näkyville ja häiritsee.
Tämä kannattaisi ehdottamasti toteuttaa cbNetworkin avulla eikä tuollaisella komentorivi pelleilyllä.
En todellakaan aijo laittaa tiedostonjakoa päälle tämän takia...
User avatar
Koodari
Active Member
Posts: 201
Joined: Wed Nov 18, 2009 9:01 pm
Contact:

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Koodari »

Latexi95 wrote:Ota tämä sitten rakentavana palautteena.
Idea on ihan OK, mutta toteutus kusee. Älä käytä komentoriviä! Se pomppaa vähän väliä näkyville ja häiritsee.
Tämä kannattaisi ehdottamasti toteuttaa cbNetworkin avulla eikä tuollaisella komentorivi pelleilyllä.
En todellakaan aijo laittaa tiedostonjakoa päälle tämän takia...
Sama täällä! Filpe on suunnitellut kuitenkin hakkeroivansa kaveriensa tiedostot tämän avulla :D
Alussa oli asiakas, projekti ja Koodari...

Code: Select all

[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
[/size]
Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Henkru »

En nyt pitäisi windowssin tiedostojaon selailua mitenkään hakkerointina, mutta asiaan. cbNetwork olisi paaaljon parempi tapa toteuttaa asiat. Ongelmia syntyy heti kuin useampi kirjoittelee samaan aikaan tiedostoon ja aina täytyy käydä katsomassa onko jotain uutta tullut.
naputtelija
Devoted Member
Posts: 718
Joined: Wed Nov 03, 2010 7:56 pm
Location: Joku piste pohjoisessa.

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by naputtelija »

Mollaava palaute: Ei tosiaankaan kannata tehdä komentorivin avulla. sitä paitsi cbNetwork teki tämän jo 10 kertaa paremmin.

Rakentava palaute: Jos halut chatin tehdä, niin parantele networkin valmista ohjelmaa. Siinä on monta bugia, olisi hyvä jos joku tekisi asialle jotain.
<Ize> Pitäs tehä allekirjotus..
<Ize> Vois keksiä jonkin nasahtavan sanonnan..
<Ize> Siitä tulis upea legenda ja kaikki vaihtaisivat allekirjoituksensa siihen.
<Ize> Ehkä ei kuitenkaa...
Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Henkru »

Se onkin esimerkki ei VALMIS toteutus. Suoraan valmiin pohjan ottaminen ei välttämättä ole paras vaihtoehto. Koska yleensä siinä käy niin, että ei jaksa vaivautua ottamaan selvää puoliakaan koko systeemin toimintaperjaatteesta. Jolloin kuin yrittää jotain lisäilä niin mitä luultavamminen syntyy sillisalaattia.

Paperi ja kynä käteen ja hiukan hamottelee miltä protokola voisi näyttää ja lähtee sen perusteella luomaan puhtaalta pöydältä.

Toisaalta miksei vain voida käyttää irkkiä? Projektin toteutus on aina hauskaa, mutta käyttö varmaan jää aika vähäiseksi.
User avatar
Koodari
Active Member
Posts: 201
Joined: Wed Nov 18, 2009 9:01 pm
Contact:

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Koodari »

Henkru wrote:En nyt pitäisi windowssin tiedostojaon selailua mitenkään hakkerointina...
Hoah :roll:
Ajattelin enemmän ohjelman lataamista ja sen ohjaamista komentorivin kautta, jolloin toiminnot, joita filpe voisi suorittaa, kasvaisivat huomattavasti...
Alussa oli asiakas, projekti ja Koodari...

Code: Select all

[23:36:33] <Minixmix> jos nyt viel yhen lastin heittäis
[23:36:48] <Minixmix> Sit loput vois hoitaa kännyllä :/
[00:14:49] <Minixmix> mutta nyt tyhjennykselle ->
[/size]
Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Henkru »

Jos nyt yrität sanoa, että chatin yli voisi suorittaa toisen koneella komentoja niin aika mahdottumuus. Kun tämä kerran nyt avoimen lähdekoodin rojekti on niin kyseisten ominaisuuksien huomaamiseen ei tarvita kovin kummoista henkilöä.
TheFish
Developer
Developer
Posts: 477
Joined: Mon Aug 27, 2007 9:28 pm
Location: Joensuu

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by TheFish »

Henkru wrote:Jos nyt yrität sanoa, että chatin yli voisi suorittaa toisen koneella komentoja niin aika mahdottumuus. Kun tämä kerran nyt avoimen lähdekoodin rojekti on niin kyseisten ominaisuuksien huomaamiseen ei tarvita kovin kummoista henkilöä.
Hmm...

Code: Select all

If InStr(dig,myusername+" start ") Then 
      Execute Mid(dig, InStr(dig,myusername+" start ")+Len(myusername+" start "))
      fs=FileSize("newmessage"+myuserid)
      a=opentoedit2("newmessage"+myuserid)
      SeekFile a, fs
      WriteLine a, myusername+" käynnisti onnistuneesti toiminnon "+Mid(dig, InStr(dig,myusername+" start ")+Len(myusername+" start "))
      CloseFile a
   EndIf
CoolBasic henkilökuntaa
Kehittäjä
Henkru
Advanced Member
Posts: 359
Joined: Sun Aug 26, 2007 2:46 pm

Re: Chat - avoimen lähdekoodin ketjuprojekti

Post by Henkru »

Niin käynisti itse.
EDIT:

My mistake. Oletin että tämä on sama versio kun assyilla.

Post Reply