játékfejlesztés.hu
FórumGarázsprojectekCikkekSegédletekJf.hu versenyekKapcsolatokEgyebek
Legaktívabb fórumozók:
Asylum:    5512
FZoli:    4894
Kuz:    4455
gaborlabor:    4449
kicsy:    4304
TPG:    3402
monostoria:    3284
DMG:    3172
HomeGnome:    2919
Matzi:    2529

Pretender:    2498
szeki:    2440
Seeting:    2306
Geri:    2198
Orphy:    1893
Joga:    1791
Bacce:    1783
MaNiAc:    1735
ddbwo:    1654
syam:    1491
misi - Törzstag | 971 hsz       Online status #29209   2006.09.04 12:18 GMT+1 óra  
Csak most itt az a fura hogy ha egy nap 24 óra a játékba és a csákó most úgy gondolja lecsöketni 5 órára és a kocsi ugyan olyan sebességgel megy. Vagy is az idő csökkel a sebesség megmarad és arányok azt mutatják hogy gyorsabb a kocsi pedig nem és ezt egy játékos nem is veszi észre. Poén mi?Na jó én is belezavarodtam.

- Sóval ha a csákó eddig egy nap alatt jutott el az egyik helyre most (ő előveszem a számológépet) 4.8 nap alatt fog de ezt nem fogja észre venni mert neki nem változik az idő és a kocsija is ugyan olyan gyors.
- Az tán ha már valaki kidolgozta hogy 24 óra neki egy nap és lecsökenti 24 percre de a sebességet nem csökkenti le akkor meg érdekes hogy eljutunk a háztömbvégéig az egyikbe 10 másod perc alatt a másikba meg 10 perc alatt. szóval az idő nem mindegy
   
kicsy - Szerkesztő | 4304 hsz       Online status #29197   2006.09.04 11:52 GMT+1 óra  
Nemigazán, mert van aki hajnalban tud játszani, van aki meg délután kettőkor, nem lenne rossz ha tudná nyomni minden napszakban. Szóval érdemes eltolni, pl 10-15órára venni egy játékbeli napot, vagy akár még kevesebbre, hogy pörögjön rendesen.
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
misi - Törzstag | 971 hsz       Online status #29194   2006.09.04 11:48 GMT+1 óra  
Még anyit ha van egy autós játékabba jó úgy hogy este estevan?Mert akkor úgy csinálom meg az időt mint a valóságba.
   
misi - Törzstag | 971 hsz       Online status #29193   2006.09.04 11:47 GMT+1 óra  
Jó csak a haveromell a bizonyíték.Mert ő meg van győzödve hogy meg lehet oldani.
   
kicsy - Szerkesztő | 4304 hsz       Online status #29190   2006.09.04 11:45 GMT+1 óra  
Szerinted miért nincs az mmo-kban alvás? A játékbeli időnek és a valós időnek egyszerre kell telnie, tehát ha a karakter lefekszik 7 órára aludni, akkor 7 óráig nem játszhat vele.. (Persze lehet torzítani, nálunk is 10 óra egy játékbeli nap)
kicsy ● SilentVertigo Team - project Solarah
http://blog.yscik.com
   
misi - Törzstag | 971 hsz       Online status #29184   2006.09.04 11:35 GMT+1 óra  
nem rendesen múlik az idő estelesz és utána reggel tudod igy rendesen valós idejü.
   
bloodknife - Törzstag | 469 hsz       Online status #29170   2006.09.04 10:41 GMT+1 óra  
Elvégre itt körökre osztott illetve időre osztott rpg ről lenne szó?
Mert akkor az időt szerveren kellene beállítani és ahhoz minden client-et!
   
misi - Törzstag | 971 hsz       Online status #29168   2006.09.04 10:32 GMT+1 óra  
Egy furcsak kérdésem van!Egy rpg játékba hogy olgyák meg az időt multiba?Csak mert a Gothic-be lehet aludni de azt nem tudnák megcsinálni multiba hogy aludhasson.
   
Baz - Guests | hsz       Online status #6790   2005.12.26 09:36 GMT+1 óra  
Eagle_Lor! mikor lesz??

Üdv: --==[B@z]==--

   
Baz - Guests | hsz       Online status #6789   2005.12.06 22:08 GMT+1 óra  
jah ok. és mikor lesz?

Üdv: --==[B@z]==--

   
Eagle_Lor - Guests | hsz       Online status #6788   2005.12.06 13:50 GMT+1 óra  
Mivel most zh időszak van, ezért a tutorial helyett inkább arra koncentrálok h. ne bukjak meg analízisből


   
Baz - Guests | hsz       Online status #6787   2005.12.06 11:57 GMT+1 óra  
Eagle, hol vagy már??? mikor lesz kész a cikk????

Üdv: --==[B@z]==--

   
tigrisss - Guests | hsz       Online status #6786   2005.12.01 14:57 GMT+1 óra  
Köszönöm a résztvevőknek a tesztet!
Jövő héten, ha minden jól megy, már akár lövöldözhetünk is egyet!


   
Eagle_Lor - Guests | hsz       Online status #6785   2005.12.01 07:32 GMT+1 óra  
Tudtommal ez a bevett szokás, bár egy kicsit hatékonyabb ha spec karakterek beszúrása helyett az üzenetek hosszát adod meg explicit és implicit módon: pl. az ack csak 1 bájt utána biztos következő üzenet jön, de az msgt jelző bájthoz kapcsolódik egy hossz bájt is és utána jön az üzenet. így viszont talán nehezebb lesz debuggolni, mert nem látszik olyan szépen h. hol vannak az üzenetek határai.

Esetleg megnézheted h. a [url=http://www.hawksoft.com/hawknl/>HawkNL[/url], [url=http://www.rakkarsoft.com/>RakNet[/url] és [url=http://www.replicanet.com/>ReplicaNet[/url] ingyenes hálózatkezelő könyvtárak hogyan működnek.


   
tigrisss - Guests | hsz       Online status #6784   2005.12.01 04:06 GMT+1 óra  
Gaborious: "Megolodás: blocking módban vagy és a selectet használod."

Ezt hogy érted? Én nem blokkolóban vagyok.
Szépen jönnek-mennek az adatok, miközben az áksön egy pillanatra sem torpan meg (DirectX-ben fut a scene), csak van úgy hogy szervertől egyszerre több adat is jön, pl:
Pl a kliens kap 2 ilyen üzenetet külön:
ACK#1 és MSG#Szerver mondja
vagy egyben is megkaphatja: ACK#1MSG#Szerver mondja

Ezért egy spec karaktert tettem minden elküldött üzenet végére, és a kliens (vagy a szervernél is van ilyen, hogy több jön) szépen szétszedi:
ACK#1 és MSG#Szerver mondja
-re, amit már feldolgozhat.

Szóval arra gondoltam, hogy ez a bevett szokás, vagy van valami elegánsabb is?


   
Baz - Guests | hsz       Online status #6783   2005.11.30 23:02 GMT+1 óra  
Idézet
Gaborious írta:
Hi, én most írom a saját kis tcpip hálózatos dolgomat winsock2 alá. A protokol ami rátelepszik a tcpipre saját fejlesztés (FastTransfer (whoááááooo)) és eléggé 1szerű a kezelése, támogat biztonságos csomagküldést, meg streamelni lehet rajta és akár max 16MByte méretü fájlt is át lehet rajta küldeni egy üzenetként (persze beállítható a 4GB-os fileméret de annak azt sok értelme van egy játékban.).

Ha valakit érdekel a dolog és majd kér belőle, az szóljon mert most motiváció-hiányban szenvedek.

Think again, again and again to get a head-ache again.
engem érdekel, ugyanis vhogy nem nagyon megy
teljesen lelassult, amióta átálltam nem blocing módra, és vmiért el se küldi (vagy nem fogadj) szal nem megy...

Üdv: --==[B@z]==--

   
Gaborious - Guests | hsz       Online status #6782   2005.11.30 02:57 GMT+1 óra  
Idézet
tigrisss írta:
Nah kicsit kisérletezgettem, és felvetődött egy kérdés:
Ha nonblockingmódban vagyok és a klinesprogiból több helyen is küldök adatot a szervernek, akkor van úgy összeakaszkodik a két üzenet, és egyben megy el.
Vagy akkor is, ha egymás után küldök 2 üzenetet - kivéve akkor, ha közbeiktatok (csunya dolog tudom) egy Sleep()-et.
Erre van valami bevett gyakorlat?
Lehet hogy az FD_WRITE: -ot kéne megpiszkálnom? (most ez a case ág nekem üres... ).
Vagy ne is törődjek vele, hanem rakjak szeparátorkaraktert a sztringbe és szerveroldalon kapjam szét?


Megolodás: blocking módban vagy és a selectet használod.


Think again, again and again to get a head-ache again.

   
Gaborious - Guests | hsz       Online status #6781   2005.11.30 02:55 GMT+1 óra  
Hi, én most írom a saját kis tcpip hálózatos dolgomat winsock2 alá. A protokol ami rátelepszik a tcpipre saját fejlesztés (FastTransfer (whoááááooo)) és eléggé 1szerű a kezelése, támogat biztonságos csomagküldést, meg streamelni lehet rajta és akár max 16MByte méretü fájlt is át lehet rajta küldeni egy üzenetként (persze beállítható a 4GB-os fileméret de annak azt sok értelme van egy játékban.).

Ha valakit érdekel a dolog és majd kér belőle, az szóljon mert most motiváció-hiányban szenvedek.

Think again, again and again to get a head-ache again.

   
Eagle_Lor - Guests | hsz       Online status #6780   2005.11.29 17:50 GMT+1 óra  
A TCP egy adatfolyam alapú protokoll, ami azt jelenti h. amit elküldesz az egyik gépről az biztosan ugyanolyan sorrendben érkezik meg ahogy küldted és ha egy rész elveszik akkor, azt újraküldi az os. A TCP protokoll viszont azt nem garantálja h. ha x byte adatot elküldesz akkor a fogadó gépen is egyszerre x byteként tudod fogadni, lehetséges h. 2 részletben fog megérkezni v. 2 üzenet egyszerre. Ha a játékodat üzenetekkel vezérled akkor érdemes egy saját kis protokollt építeni rá, amivel meg tudod előre mondani h. az üzeneted milyen hosszú lesz.

Az UDP protokollnál már nehezebb ezt megvalósítani, mivel az UDP csomag alapú protokoll, ami nem garantálja az üzenetek érkezési sorrendjét és azt sem h. egyáltalán célba érnek. Érdemes ráépíteni egy saját kis TCP szerű protokollt: pl. a fontos üzenetekről visszajelzést kérni és bizonyos üzeneteket (pl. fájl áttöltés) megfelelő sorrendbe rakni.

Ami a szeparátor karaktert illeti, azt is használhatsz, de van egy csomó olyan üzenet amit egy karakterben is el lehet küldeni, így azokhoz nem szükséges szeparátor.


   
Baz - Guests | hsz       Online status #6779   2005.11.29 08:44 GMT+1 óra  
jaja, az a legjobb, ha küldesz 1 karit, ami megmondja, hogy mi történt (akár 1 szám is lehet) és az alapján szét szeded...

Üdv: --==[B@z]==--

   
tigrisss - Guests | hsz       Online status #6778   2005.11.29 08:24 GMT+1 óra  
Nah kicsit kisérletezgettem, és felvetődött egy kérdés:
Ha nonblockingmódban vagyok és a klinesprogiból több helyen is küldök adatot a szervernek, akkor van úgy összeakaszkodik a két üzenet, és egyben megy el.
Vagy akkor is, ha egymás után küldök 2 üzenetet - kivéve akkor, ha közbeiktatok (csunya dolog tudom) egy Sleep()-et.
Erre van valami bevett gyakorlat?
Lehet hogy az FD_WRITE: -ot kéne megpiszkálnom? (most ez a case ág nekem üres... ).
Vagy ne is törődjek vele, hanem rakjak szeparátorkaraktert a sztringbe és szerveroldalon kapjam szét?


   
Baz - Guests | hsz       Online status #6777   2005.11.25 06:01 GMT+1 óra  
Eagle, kész lesz még ebben az évben?

Üdv: --==[B@z]==--

   
Lazarus - Guests | hsz       Online status #6776   2005.11.22 01:55 GMT+1 óra  
Zavart érzek az erőben

netspirit.srv.hu

   
Baz - Guests | hsz       Online status #6775   2005.11.20 09:22 GMT+1 óra  
őőő gondolom ezt rám értetted
tájékoztatlak, hogy a kiírás előtt kb 1 évvel írtam azt. ki is írtam ezt a dolgot, de mindenki aszitte, hogy abban a pillanatban írtam

Üdv: --==[B@z]==--

   
Eagle_Lor - Guests | hsz       Online status #6774   2005.11.19 23:21 GMT+1 óra  
Idézet
Baz írta:
nem figyeltél (amúgyis nekem C++ba kell)
eagle_lor igért egy tutort, és azt kérdeztem, hogy hol van már

Üdv: --==[B@z]==--
Készülget, de idő kell hozzá, nem akarom összecsapni, mint egyesek a tutorialjaikat


   
Baz - Guests | hsz       Online status #6773   2005.11.19 11:34 GMT+1 óra  
nem figyeltél (amúgyis nekem C++ba kell)
eagle_lor igért egy tutort, és azt kérdeztem, hogy hol van már

Üdv: --==[B@z]==--

   
bmateusz - Guests | hsz       Online status #6772   2005.11.19 10:59 GMT+1 óra  
Nekem van WinSock tutorialom, de VBhez, már linkeltem egyszer. (Megjegyzem hogy ha beírod a gugliba kiad egy tonnányit)


   
Baz - Guests | hsz       Online status #6771   2005.11.19 10:08 GMT+1 óra  
na, hol van már az a tutor????

Üdv: --==[B@z]==--

   
nagyy - Guests | hsz       Online status #6770   2005.11.17 11:49 GMT+1 óra  
Igen, ez igaz. A progimban azért nem kellett az FD_WRITE-ot használni, mert mindíg csak a változó adatokat küldtem a szerverhez, de ezek az adatok olyan sűrűn változtak, hogy egy üzenet kiséséből adódó hiba szinte észrevétlen volt. Valószínűleg ez zavart meg.
A cikk jó ötlet. Kíváncsian várom.

nagyy

   
Baz - Guests | hsz       Online status #6769   2005.11.17 11:31 GMT+1 óra  
hi!
bmarci: winfosos, szal winsock2

eagle_lor: igen, van rá igény de gyorsan!!

Üdv: --==[B@z]==--

   
Eagle_Lor - Guests | hsz       Online status #6768   2005.11.16 18:49 GMT+1 óra  
nagyy:
"az FD_WRITE-ot nem olyan fontos használni a küldéskor, mert az pl csak olyankor következik be, ha mondjuk elfogadták a csatlakozási kérelmet, vagy felszabadult a korábban a küldéskor megtelt puffer, stb."
Az FD_WRITE-ot igenis fontos használni, mert általában lehet írni a socketet, de valamiért mégsem lehet pl. megtelt a küldő puffer, akkor a programunk blokkolni fog a send hívásakor vagy hibát ad ha asszinkron módot használunk.

Baz:
"hogyha nekem a clientben a küldés és a fogadás úgy van időzítve, hogy 1msenként küldje, akkor hogy csináljam meg ezt a szervernél is??"
Ha mindenképpen szinkron módban akarod használni a winsockot, akkor a kliensben és a szerverben is kell egy-egy ciklus ami időnként megnézi h. van-e fogadandó v. küldendő adat, ez a módszer lassan is fog küldeni és feleslegesen használja CPUt. Erre a megoldás a több szálú programozás: egy(vagy több) külön szál vár az írás/olvasás kezdésének és végének eseményére, a windowsos Event és Completion Routine használatával. Ezek a szálak addig nem kapnak CPU időt, amíg az esemény be nem következik, azonban ha bekövetkezik az esemény akkor a kernel gondoskodik a szál futtatásáról. Bővebb információkért nézz körül az [url=http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/input_and_output__i_o_.asp>msdnen[/url] v. ha van rá igény írhatok a témáról egy cikket is.

(Módosította Eagle_Lor 2005.11.17. 02:51-kor)

   
bmarci - Guests | hsz       Online status #6767   2005.11.16 15:26 GMT+1 óra  
huh, ez lehet, hogy winsock2 specifikus? nemtom.
Ha windows-ban csinalod, akkor winsock2.h


   
Baz - Guests | hsz       Online status #6766   2005.11.16 11:51 GMT+1 óra  
őőő ésha nincs olyan, hogy setsockopt?? oda lehet, hogy sock(vmi, vmi, IPPROTO_TCP) és oda a 2. vmi mellé beírom?

Üdv: --==[B@z]==--(Módosította Baz 2005.11.16. 19:51-kor)

   
Baz - Guests | hsz       Online status #6765   2005.11.16 10:46 GMT+1 óra  
hi!
köfi, örök hálám!!!

Üdv: --==[B@z]==--

   
bmarci - Guests | hsz       Online status #6764   2005.11.15 17:52 GMT+1 óra  
Eagle_Lor: Igazsagok vagynak abban amit irtal, forras iktatva, kiszi

Baz: az FD_READ/FD_WRITE korul nekem is voltak kerdojeleim, de ezt egy huszarvagassal kikerultem ugy, hogy "kozvetlenul" olvasok a socket bufferbol (ioctlsocket(FIONREAD)/recv).
Az akadozasra egy otletem lenne (ha TCP-t hasznalsz); ami miatt en is majdnem befontam a szemoldokom: A setsockopt-ban van egy TCP_NODELAY, ami a nevebol is adodik nem keslelteti a csomagok kuldeset.


   
Baz - Guests | hsz       Online status #6763   2005.11.15 14:25 GMT+1 óra  
másik meg az ettől eltekintve:
hogyha nekem a clientben a küldés és a fogadás úgy van időzítve, hogy 1msenként küldje, akkor hogy csináljam meg ezt a szervernél is??
mert nekem egy while ciklusban van benne (a while(app) on belül még egy while ciklus), amiben adom meg a mindenféle cuccokat a küldéshez (ez nagyy a te tutorodban volt benne, a multiple hostsba), szal kell az oda. tehát hogytom megcsinálni?? mert így nagyon akad a prog, mer mindig kéri a cuccokat, de nem a forgalom miatt van (a feltöltésem közben max 12kbit/s...) tehát azért van, mert a szerver később küldi az adatokat, mint a kliens kéri...

Üdv: --==[B@z]==--

   
Baz - Guests | hsz       Online status #6762   2005.11.15 14:18 GMT+1 óra  
Hi!
Az nekem mért van, hogyha beírom oda a case szerkezetbe hogy
FD_READ vagy mi a szösz, akor az mindig teljesül, akkor is, ha nem is érkezett semmi

Üdv: --==[B@z]==--

   
nagyy - Guests | hsz       Online status #6761   2005.11.15 09:08 GMT+1 óra  
Igen, de az FD_WRITE-ot nem olyan fontos használni a küldéskor, mert az pl csak olyankor következik be, ha mondjuk elfogadták a csatlakozási kérelmet, vagy felszabadult a korábban a küldéskor megtelt puffer, stb. én eddig még nem nagyon használtam, mégis sikerült működőképes progit generálni. Ettől függettlenül persze biztos lehet olyan esetet mondani, amikor elengedhetetlen a használata.

nagyy

   
tigrisss - Guests | hsz       Online status #6760   2005.11.15 08:14 GMT+1 óra  
Köszi!
Szóval a tudomány(om) jelenlegi állása szerint akkor így nézne ki egy client-server dolog?

SERVER
-nyitok egy socket-et, a server progi figyel. Ha egy kliens a szerverprogit futtató IP címére bekopog egy connect()-el, akkor visszaküld neki egy accept()-et, és nyit neki úgy socketet. (azaz felépül egy kapcsolat az új socketen át)
- Ezen az új socketen keresztül fogad az FD_READ: messagen keresztül (amit a kliens-progi a send()-parancsal generált és az FD_WRITE:-al küldött a servernek)
- Szintén ezen az új socketen keresztül a szerver küldhet vissza adatot a kliensének egy send() parancssal.

CLIENT
- Elindul a progi, létrehozok egy socketet és a szerver IP címét megcélozva egy connect() kéréssel létrejön a socketen át a contact.
- Küldök (bárhonnan a send()-el, közvetetten a FD_WRITE: ), fogadok (messagehandleren keresztül az FD_READ: ) adatokat.

Ez így van?

(Módosította tigrisss 2005.11.15. 16:15-kor)

   
nagyy - Guests | hsz       Online status #6759   2005.11.15 07:43 GMT+1 óra  
Szerintem a TCP-vel egyszerűbb kezdeni, mert az UDP-nél:
- a küldött adat nem biztos, hogy megérkezik a cél géphez
- az sem biztos hogy csak egyszer érkezik meg.
- és a megérkezés sorrendje is tetszőleges lehet.

Persze át lehet hidalni ezeket a problémákat, de sokkal többet kell agyalni/szenvedni, hogy minden úgy működjön ahogy szeretnénk. A TCP ezeket a problémákat alapból megoldja. Emiatt lassabb is...
Később viszont tényleg érdemes UDP -re váltani, mert sokkal gyorsabb, és a multicastot is tud. Ja, és amúgy async módban is működhet.

nagyy

   
tigrisss - Guests | hsz       Online status #6758   2005.11.15 06:35 GMT+1 óra  
Én is most ismerkedem a winshock-al, és fel is merült bennem az első nagy kérdés:
TCP vagy UDP protokollal érdemes kezdeni?
Én úgy tudom, hogy az UDP a "trendi" nem is beszélve arról, hogy azzal valósítható meg a multicasting, és az sokkal gyorsabb (és ajánlottabb) mondjuk egy FPS-hez.
Asyncronos módban gondolom az is mehetne, és nem blokkolná rendszert.
Szerintetek?


   
Baz - Guests | hsz       Online status #6757   2005.11.13 22:48 GMT+1 óra  
aha köff. valszeg az utóbbi megoldás lesz...
nah akkor egyenlőre egy utolsó kérdés (egyenlőre :p): meg lehet azt csinálni, hogy programból megnyitok egy ftp-n lévő fájlt (tom a jelszót meg a felhnevet) és azt módosítom. + akkor kell az olvasás is. és ha igen, akkor hogyan?

Üdv: --==[B@z]==--

   
Eagle_Lor - Guests | hsz       Online status #6756   2005.11.13 17:30 GMT+1 óra  
A bmarci által beírt megoldás hibás, csak az első adapter ip címét adja vissza és nem használja ki a teljes lefoglalt stringet sem(bár ez nem súlyos hiba mivel csak 1 bájtnyi eltérésről van szó). Ha pl. ppoe adsl kapcsolatod van akkor vagy lanos vagy a netes ipt nem fogod megkapni. A helyes kód:

char hostname[256];
if (gethostname(hostname, sizeof(hostname))== SOCKET_ERROR)
throw "A hostnevet nem lehet lekérdezni";
hostent* he=gethostbyname(hostname);
if (he == NULL)
throw "Nem sikerült a host adatait lekérdezni";
if (he->h_addrtype != AF_INET)
throw "Nem Ipv4 cím";
for (int i=0; he->h_addr_list!=0; ++i)
{
cout << "Address["<<i<<"] " << inet_ntoa(*(in_addr*)he->h_addr_list)<<endl;
}

A Microsoft nem támogatja a gethostbyname használatát helyette a getaddrinfo-t javasolja.

Ez a módszer sem biztos, hogy le tudja kéredzni a netes IPd ha routeren keresztül kapcsolódsz a netre akkor nem lehet egyszerűen megállapítani a netes ip címet. Ebben az eseben a fenti módszer csak a lanos ipt adja meg, azonban a net felől a router ip címén látszol. Ezt úgy tudod megoldani, hogy neten csatlakozol valakihez aki visszaküldi az ip címed(pl. www.whatismyip.com) vagy megkéred a usert h. írja be a netes ipjét.


   
Baz - Guests | hsz       Online status #6755   2005.11.13 04:23 GMT+1 óra  
jah értem. köff

Üdv: --==[B@z]==--

   
bmarci - Guests | hsz       Online status #6754   2005.11.13 04:11 GMT+1 óra  
baz: a name elvileg a geped neve, amit a system settings-ben allithatsz pl: Jancsika masinaja...stb Ami az ip-ben visszajon az a tenyleges IP cim a helyi halozaton. Ha nincs halozat, akkor 127.0.0.1

lazurus: Koszi, akkor jol gondoltam


   
Baz - Guests | hsz       Online status #6753   2005.11.12 00:46 GMT+1 óra  
Idézet
bmarci írta:
Baz:
IP lekeres, ahogy en csinaltam, kicsit talan nyakatekert, de nem talaltam egyszerubbet:

char name[256];
gethostname((char*)&name,255);
hostent* h=gethostbyname((char*)&name);
char* ip=inet_ntoa(*((in_addr*)h->h_addr));

ezutan az ip-ben van az ip cim szoveges formatumban
a name gonolom egyertelmu


Egy masik kerdes; amiben nem vagyok biztos; megprobalom ertelmesen eloadni:

Van 1db multi opcio, az egyik jatekos a szerver, a tobbi kliens, de a szerver is egy kliens.
Mennyire altalanos az a modszer, hogy minden kliensnek csak a szerverhez van socket-je, a szervernek meg minden klienshez, es ha 2 kliens egymasnak kuld adatot, akkor az a szerveren keresztul megy? Tehat mint egy levelezo, a csomagban benne van a cimzett ez megy a szervernek o meg szetvalogatja es tovabb kuldi annak/azoknak aki(k)nek kell.
Vagy esetleg van erre frappansabb megoldas is?


sajna a name nem egyértelmű.. mi, localhost? vagy mija föf? mer eddig a name-t úgy kellett megadni, hogy vagy az, hogy localhost, vagy az IP cím..
de én pont aft szeretném lekéretni...

Üdv: --==[B@z]==--

   
Lazarus - Guests | hsz       Online status #6752   2005.11.10 17:10 GMT+1 óra  
Idézet
bmarci írta:
Baz:
IP lekeres, ahogy en csinaltam, kicsit talan nyakatekert, de nem talaltam egyszerubbet:

char name[256];
gethostname((char*)&name,255);
hostent* h=gethostbyname((char*)&name);
char* ip=inet_ntoa(*((in_addr*)h->h_addr));

ezutan az ip-ben van az ip cim szoveges formatumban
a name gonolom egyertelmu


Egy masik kerdes; amiben nem vagyok biztos; megprobalom ertelmesen eloadni:

Van 1db multi opcio, az egyik jatekos a szerver, a tobbi kliens, de a szerver is egy kliens.
Mennyire altalanos az a modszer, hogy minden kliensnek csak a szerverhez van socket-je, a szervernek meg minden klienshez, es ha 2 kliens egymasnak kuld adatot, akkor az a szerveren keresztul megy? Tehat mint egy levelezo, a csomagban benne van a cimzett ez megy a szervernek o meg szetvalogatja es tovabb kuldi annak/azoknak aki(k)nek kell.
Vagy esetleg van erre frappansabb megoldas is?


szerver-kliens kapcsolat: a kliensek nem kommunikálnak 1mással csak a szerverrel

peer-to-peer: mindenki nyit socketet mindenkire és így folyik a kommunikáció (szerintem bonyolultabb, de jobban eloszlik a sávszélesség)

multicastingal lehet gyorsítani a szerver-kliens kapcsolatot, a szerver csak egyszer küldi el az adatot.. egy alkalommal több címzettnek és a neten szétválik (vagymi)
az a hátránya hogy nem minden szolgáltató támogatja a multicastinget, ráadásul a klienseknek is támogatnia kell nem csak a szervernek

Ha hülyeséget mondtam bocs, én se értek hozzá :p

netspirit.srv.hu

   
bmarci - Guests | hsz       Online status #6751   2005.11.10 15:25 GMT+1 óra  
Baz:
IP lekeres, ahogy en csinaltam, kicsit talan nyakatekert, de nem talaltam egyszerubbet:

char name[256];
gethostname((char*)&name,255);
hostent* h=gethostbyname((char*)&name);
char* ip=inet_ntoa(*((in_addr*)h->h_addr));

ezutan az ip-ben van az ip cim szoveges formatumban
a name gonolom egyertelmu


Egy masik kerdes; amiben nem vagyok biztos; megprobalom ertelmesen eloadni:

Van 1db multi opcio, az egyik jatekos a szerver, a tobbi kliens, de a szerver is egy kliens.
Mennyire altalanos az a modszer, hogy minden kliensnek csak a szerverhez van socket-je, a szervernek meg minden klienshez, es ha 2 kliens egymasnak kuld adatot, akkor az a szerveren keresztul megy? Tehat mint egy levelezo, a csomagban benne van a cimzett ez megy a szervernek o meg szetvalogatja es tovabb kuldi annak/azoknak aki(k)nek kell.
Vagy esetleg van erre frappansabb megoldas is?


   
Baz - Guests | hsz       Online status #6750   2005.11.10 13:21 GMT+1 óra  
mert a hálózaton lehet más szerver is, és nekem nem az ő ipje kell

Üdv: --==[B@z]==--

   
nagyy - Guests | hsz       Online status #6749   2005.11.10 11:24 GMT+1 óra  
Az a megoldás miért nem jó, amit Eagle_Lor írt?
A helyi gép IP-je(i) == a te IP-(i)d.

nagyy