Gå til innhold

Chat, 2 klienter, 1 server. Thats it. 2 brukere!


Anbefalte innlegg

Hei!

 

Vel jeg kunne ha laget dette i vb 6.0 men vil bruke C++. <3

Må starte en gang med C++, ikke bare ty til VB med en gang det er noe jeg ikke får til.

:wee:

 

Vel vi har nettverksdelen...

Poenget med serveren er vel egentlig bare å "videresende" alle meldingene fordi den er den enste som har statisk IP.

Er det API jeg jobber direkte mot her da? TCP?

 

Også selvfølgelig GUI, dette må være litt "tøft", gjør GTK jobben eller fins det mer grafiske alternativer?

 

Og til sist, hvordan er det med ø,æ og å når det kommer til stringbehandling?

Jeg har ingen form for erfaring bare så det er nevnt.

Men det har vel dere allerede forstått. :D

 

Gjerne linker til ferdig kode/proskjekter som har tilsvarende funksjonalitet. :thumbup:

 

Tusen Tusen Takk for hjelpen.

 

Etter et bitte lite søk @ google innser jeg nå hvor latterlig lite behov det er for denne posten. :roll:

Endret av chills
Lenke til kommentar
Videoannonse
Annonse
...

Også selvfølgelig GUI, dette må være litt "tøft", gjør GTK jobben eller fins det mer grafiske alternativer?

...

Og til sist, hvordan er det med ø,æ og å når det kommer til stringbehandling?

...

6972732[/snapback]

 

GTK+ passer her ja. Uhm, vet ikke hva du mener med "grafisk" - men om du er ute etter å tegne ting så er cairo - som er en del av GTK+, veldig godt ( http://cairographics.org/examples ) og enkelt å komme i gang med.

 

Norske tegn er ikke noe problem i GTK+. Flere av de tingene du er ute etter (Unicode-støtte, sockets, tråder) finnes i GTK+-libbet GLib. Bruker du disse blir programmet ditt portabelt.

Endret av lnostdal
Lenke til kommentar

Takk Takk...

Ikke dumt. :D

 

Den ene klienten er egnetlig tiltenkt en linuxbox og den andre til en windowsmaskin.

 

Skal se på GTK, @google med en gang.

Eneste jeg lurer litt på er om man må skrive alt for GUI i kode, eller om det finnes en "designer" som skriver den koden for meg?

Finner vel det kanskje ut nå selv...

Lenke til kommentar
Takk Takk...

Ikke dumt.  :D

 

Den ene klienten er egnetlig tiltenkt en linuxbox og den andre til en windowsmaskin.

 

Skal se på GTK, @google med en gang.

Eneste jeg lurer litt på er om man må skrive alt for GUI i kode, eller om det finnes en "designer" som skriver den koden for meg?

Finner vel det kanskje ut nå selv...

6975242[/snapback]

 

..man har en "designer" kalt Glade ja, men må bare understreke en ting her

 

det er _ikke_ noe lurt å bruke Glade til å generere C/C++-kode.. generelt sett er det ikke noe lurt å bruke _noen som helst_ "designer" til å generere kode; det man i stedet gjør er å representere GUIet v.h.a. data .. Glade bruker XML til dette

 

http://glade.gnome.org/

http://developer.gnome.org/doc/API/libglade/libglade.html

 

generelt sett er det ofte lurere å bruke en "datasentrisk" løsning fremfor å hardkode slike ting i kode

 

lykke til - rop om du står fast ... :)

Endret av lnostdal
Lenke til kommentar
GTK vil ikke gjøre jobben sin :wee:.

 

Jeg prøver å compile en tutorial på GTK sine sider, den hello world.

Men jeg klarer ikke å include gtk.h selv om jeg har lastet det ned å lagt inn i "additional include diretories".

Jeg fatter ikke hva jeg gjør gale, gtk.h ligger jo i den mappen? :dontgetit:

6978318[/snapback]

 

hva er "additional include directories"? hvilket OS? hvilken kompiler - åssen oppsett?

 

under ubuntu er det pakkene `build-essential' (for GCC og slikt) og `libgtk2.0-dev' du er ute etter

 

edit:

altså

sudo aptitude install build-essential libgtk2.0-dev

 

tar du med `libgtk2.0-doc' så havner API-dokumentasjonen i file:///usr/share/doc/libgtk2.0-doc/gtk/index.html og du kan browse den lokalt via den linken i browseren din

 

etter du har gjort dette kompilerer/linker du som forklart i tutorialen:

 

gcc -Wall -g helloworld.c -o helloworld `pkg-config --cflags gtk+-2.0` `pkg-config --libs gtk+-2.0`

Endret av lnostdal
Lenke til kommentar
Windows XP Pro...

 

VS.NET 2005

 

Jeg lastet bare ned en "pakkefil", sånn linux utgave pakke.

Pakket den ut, og lå den mappen hvor jeg fant gtk.h inn i additional include directories.

 

Ubuntu 6.06 er skolepcen, den blir nok ikke brukt til utvikling.

6979881[/snapback]

 

insisterer du på å bruke VC++ under Windows gidder jeg ikke hjelpe deg i det hele tatt da jeg kun bruker MinGW under Windows og er ikke interessert i å bruke en kompiler som ikke er portabel.. da må du spørre noen andre :}

 

bruker du Windows må jeg uansett dulle endel om jeg skal hjelpe deg med oppsett da jeg ikke har slike ting klart for meg "off hand"; koden blir lik (altså portabel), men installering og oppsett av selve gtk-bibliotekene og miljøet må gjøres på et eller annet vis (åpenbart ikke slik du gjør det over)

Lenke til kommentar
Hvorfor ikke?

Selv synes jeg det er best å programmere under Linux. Ikke så vanskelig å installere pakker, heller.

6979913[/snapback]

 

Vet ikke jeg.

Har vel egentlig Dual boot med Ubuntu 6.06 på hovedpcen også. :hmm:

6979920[/snapback]

 

kjør på slik jeg har forklart over - det er gjort på 2 minutter; så tar du problemet med å få opp et gtk/utviklings-miljø under Windows siden når du er ferdig og vil porte ..

 

edit: forøvrig enig med Norgul .. både programmering og håndtering av pakker (og i grunn alt annet; jeg har kjørt Linux full-time på alt siden 2001 .. WinXP ligger kun som et VMWare-image på laptop/desktop for test og bruk i sammenheng med porting) er overlegent under Linux

Endret av lnostdal
Lenke til kommentar
kjør på slik jeg har forklart over - det er gjort på 2 minutter; så tar du problemet med å få opp et gtk/utviklings-miljø under Windows siden når du er ferdig og vil porte ..

 

edit: forøvrig enig med Norgul .. både programmering og håndtering av pakker (og i grunn alt annet; jeg har kjørt Linux full-time på alt siden 2001 .. WinXP ligger kun som et VMWare-image på laptop/desktop for test og bruk i sammenheng med porting) er overlegent under Linux

6980012[/snapback]

 

Har kanskje noe med at mange firmaer bruker VS som standard IDE, og det derfor kan være nyttig å lære seg hvordan man bruker dette...

Hvorvidt dette er et fornuftig valg kan man sikkert diskutere, men jeg mener nå at så lenge det er et av de populære valgene, så bør man kunne sette det opp/bruke det.

 

Og før jeg får beskjed om at jeg er en MS wh*re, så får jeg legge til at mitt favoritt IDE er herlig plattform uavhenige Emacs, så det gjør meg ikke noe å bytte mellom *nix, mac og win32... :)

 

[EDIT]

Og for å se om jeg kan hjelpe trådstarter... (Selv om jeg foreløpig bruker VS2003)

Har du lagt til riktig dir'er under Linker, slik at VS vet hvor filene ligger? Både for debug og release? (Som har to forskjellige oppsett)

[/EDIT]

Endret av Mr.Garibaldi
Lenke til kommentar
kjør på slik jeg har forklart over - det er gjort på 2 minutter; så tar du problemet med å få opp et gtk/utviklings-miljø under Windows siden når du er ferdig og vil porte ..

 

edit: forøvrig enig med Norgul .. både programmering og håndtering av pakker (og i grunn alt annet; jeg har kjørt Linux full-time på alt siden 2001 .. WinXP ligger kun som et VMWare-image på laptop/desktop for test og bruk i sammenheng med porting) er overlegent under Linux

6980012[/snapback]

 

Har kanskje noe med at mange firmaer bruker VS som standard IDE, og det derfor kan være nyttig å lære seg hvordan man bruker dette...

Hvorvidt dette er et fornuftig valg kan man sikkert diskutere, men jeg mener nå at så lenge det er et av de populære valgene, så bør man kunne sette det opp/bruke det.

6980484[/snapback]

 

sikkert noe sant i det; men om jeg "måtte" så hadde jeg gjort all utvikling v.h.a. både portable verktøy og biblioteker -- det vil si at jeg hadde lagt til et build-script i kode-repoet for linux, og det jeg la til av kode ville dermed fungere under både linux og windows -- kolleger rundt meg ville sannsynligvis ikke merket noe til at koden jeg sjekket inn var "laget v.h.a. linux" siden den altså er portabel uansett

 

edit: unntaket oppstår naturligvis så fort jeg trenger å legge til en nye filer for da må jeg også gjøre endringer i prosjekt/build-scriptet til VS .. jeg antar at dette er trivielt - eller at en grei kollega kan kan ta seg av dette uten at jeg har noe videre greie på det

 

det finnes dog build-løsninger som også er like portable som kode/biblioteker; scons tar både i bruk GCC (event. MinGW) og VC++ -- tipper VC++ har mulighet til å kalle eksterne verktøy som scons fra IDEet og parse resulterende output i det scons eksekverer cl.exe; det bør ikke være noen forskjell der

 

offtopic: om det hadde vært et "krav" at jeg/vi (men det er vel ikke "meg" vi snakker om her egentlig) utelukkende måtte bruke VS - noe som selvfølgelig ikke er nødvendig i utgangspunktet; så hadde jeg snudd i døra på et blunk og sagt "hei og hå" :}

Endret av lnostdal
Lenke til kommentar
det finnes dog build-løsninger som også er like portable som kode/biblioteker; scons tar både i bruk GCC (event. MinGW) og VC++ -- tipper VC++ har mulighet til å kalle eksterne verktøy som scons fra IDEet og parse resulterende output i det scons eksekverer cl.exe; det bør ikke være noen forskjell der

Som jo er en fin løsningen, så lenge du har friheten til å konfigurere maskin/repo selv. Men er dessverre en del steder som vil ha kontroll over dette, bl.a. siden de vil vite at oppsette er sikkert. (Selv om de kanskje ikke er like flinke til å sikre ting selv, men det er en annen ting)

 

Pluss, som du ofte påpeker så bør man være åpen for å lære nye ting ;)

 

offtopic: om det hadde vært et "krav" at jeg/vi (men det er vel ikke "meg" vi snakker om her egentlig) utelukkende måtte bruke VS - noe som selvfølgelig ikke er nødvendig i utgangspunktet; så hadde jeg snudd i døra på et blunk og sagt "hei og hå" :}

6980592[/snapback]

Det er jo selvsagt ditt valg. Og så lenge dette ikke er tilfellet i den delen av bransjen du er int. i, så er det jo flott. Men hvis du f.eks. vil jobbe i spill-bransjen, så er det ofte ett krav om VS erfaring/bruk.

 

Men vi bør kanskje fortsette en evt. videre diskusjon i Gen. Prog, siden dette har heller lite med C++ å gjøre....

Lenke til kommentar
Pluss, som du ofte påpeker så bør man være åpen for å lære nye ting ;)

6980872[/snapback]

 

vel, en forutsetning må jo da være at det faktisk _er_ noe nytt -- jeg anser ikke et IDE som VS som noe som inneholder betydelige forskjeller; det er bare en innpakning rundt en C/C++-kompiler/linker + et par hjelpeverktøy

 

99% av tiden skriver og tenker man design v.h.a. kode; og det er forskjeller i semantikk, måte å uttrykke seg på, abstrahere og fleksibilitet akkurat der jeg tenker på når jeg tenker "nye ting" ... mulig andre er av en annen oppfatning, men det er nå så :}

Lenke til kommentar

Et par tanker angående hvordan du strukturere det hele:

 

Kan ikke den ene klienten få serverfunksjon innebygget og få en no-ip-adresse knyttet opp mot IP'en? (slik gjorde jeg det når jeg prøvde meg på en klient/server etter beejs tutorial).

 

Dersom dette ikke er tilfelle, bør ikke "serveren" bare gi den ene klienten den andres IP, for så å la dem koble seg direkte mot hverandre?

 

Det er jo ikke særlig effektivt å måtte bruke 3 maskiner for å la 2 stykker snakke seg imellom, så det må finnes en bedre løsning.

Lenke til kommentar
Et par tanker angående hvordan du strukturere det hele:

 

Kan ikke den ene klienten få serverfunksjon innebygget og få en no-ip-adresse knyttet opp mot IP'en? (slik gjorde jeg det når jeg prøvde meg på en klient/server etter beejs tutorial).

 

Dersom dette ikke er tilfelle, bør ikke "serveren" bare gi den ene klienten den andres IP, for så å la dem koble seg direkte mot hverandre?

 

Det er jo ikke særlig effektivt å måtte bruke 3 maskiner for å la 2 stykker snakke seg imellom, så det må finnes en bedre løsning.

6980995[/snapback]

 

jo:

 

* om begge - maskin A og B, står bak NAT må man bruke en maskin C (server) i midten til å "relaye" meldinger da hverken A eller B kan ha rollen som server .. (IRC fungerer på dette viset uansett, men har en mulighet man kan bruke om man ønsker kallt DCC-chat)

 

* om maskin A står bak NAT så må maskin B ha rolle som server i det maskin C (server) bekrefter dette og kobler dem sammen - data blir da overført direkte mellom A og B uten at de trenger å gå via C

 

* om maskin B står bak NAT så må maskin A ha rolle som server i det maskin C (server) bekrefter dette og kobler dem sammen - data blir da overført direkte mellom A og B uten at de trenger å gå via C

 

A og B kobler seg alstå opp som klienter mot sentral server C i starten; så finner den ut av hva som er mulig etter dette og gir beskjed til klientene hvordan de skal kommunisere - enten det blir via serveren eller direkte mellom hverandre der den ene altså har rollen som server

 

det letteste er naturligvis bare å bruke første alternativ uansett om andre eller tredje alternativ kanskje er mulig - men som du sier går det tregere og det blir mer last på en sentral server (edit: må bare legge til at man fint kan kjøre både en instans av server og klient på samme maskin) :)

Endret av lnostdal
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...