.[ ČeskéHry.cz ].
Vícevláknový server a client - potebuji navod
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
micky



Založen: 28. 02. 2008
Příspěvky: 348
Bydliště: Plzeň, Praha

PříspěvekZaslal: 2. říjen 2011, 19:20:42    Předmět: Odpovědět s citátem

citace:

Prosim vas moc, upravte to prosim tak aby se mohlo pripojit kolik chce clientu a aby client videl zpravy ostatnich. Moc vas o to zadam.


Takže po nás chceš, abychom to napsali za tebe? Mě to až skoro rozhořčuje... Poslyš, ve svých třinácti letech jsem strávil klidně několik týdnů nad problémem, než jsem ho vyřešil. Vytáčené připojení bylo drahé, tak jsem prostě experimentoval. Všichni ti rádi poradíme, ale ve smyslu "navést tě správným směrem". Programátorská práce by rozhodně neměla být jen o metodě copy&paste.
_________________
https://www.bluepulsar.cz/
https://twitter.com/11thDream_Game/
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 2. říjen 2011, 19:24:16    Předmět: Odpovědět s citátem

Njn, tak jinak, jak by jste mi doporucili abych to udelal?

treba:
mam do pole ulozit vsechny uzivatele nejakym zpusobem a pak vsem neco poslat atd.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 2. říjen 2011, 19:25:57    Předmět: Odpovědět s citátem

Potrebuji totiz aby to obsluhovalo vice clientu a nechci aby treba pri zpracovavani pozadavku nic jineho nedelal. Ale chci aby pokracoval v jeho praci normalni atd.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
perry



Založen: 28. 07. 2009
Příspěvky: 879

PříspěvekZaslal: 2. říjen 2011, 20:22:10    Předmět: Odpovědět s citátem

programovat v C++.. a ještě k tomu něco síťovýho.. je snad jedna z nejhorších kombinací (navíc by v tom měla být ještě vlákna nebo procesy). Pokud bude server jedno-vláknový, tak se k němu nebude dát pořádně připojovat. Klient-Server (server byl virtuální tiskárna, klienti na ní posílali a ona tiskla) jsem psal ve třeťáku na VŠ jako semestrálku a rozhodně to nebyla žádná sranda aby to fungovalo stabilně a hlavně univerzálně... => jednoduchá rada.. začni dělat něco jednoduchýho.. třeba zkus napsat vlastní spoják, BVSko, Hash Mapu.. pak něco sofistikovanějšího (třeba lexikální parser, kde zkombinuješ minule získané zkušenosti).. atd...
_________________
Perry.cz
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovi WWW stránky
Marek



Založen: 28. 07. 2007
Příspěvky: 1782
Bydliště: Velká Morava

PříspěvekZaslal: 2. říjen 2011, 20:55:54    Předmět: Odpovědět s citátem

Jéé tohle je vtipný thread.

Tak v první řadě bych zahodil veškerej kód, cos kdesi zkopíroval. To je ti k ničemu. Učíš se programovat, tak si to naprogramuj celý sám. Začni od prázdné funkce main. Když nevíš jak, tak hledej informace, které ti řeknou jak. Nic není hned. Zkus nejdřív třeba něco jednoduššího (např. jednoduchý messenger).

No a samozřejmě zapomeň, že tě v jakékoliv škole něco naučí. Cílem školy většinou je, abys ji dokončil a táhnul pryč.
_________________
AMD Open Source Graphics Driver Developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Ladis



Založen: 18. 09. 2007
Příspěvky: 1536
Bydliště: u Prahy

PříspěvekZaslal: 3. říjen 2011, 00:46:26    Předmět: Odpovědět s citátem

uiii napsal:
mival napsal:
Je mi 13 tak doufam ze me to ve skole nauci.

Rozhodně nepočítej s tim ze ONI tě to naučí. Mušís sám chtít snažit se aktvině zapojovat. Mám to z vlastní zkušenosti - na gymplu mě skoro nic nenaučili protože jsem se tehdy moc učit nechtěl. Nejvíc se naučís, že prostě buděš angličtinu používat (číst anglický články, psát do diskuzí atd.), ač třeba ze začátku blbě a těžko, ale časem se to zlepší.

Mám to podobně, moje maturita z angličtiny byla, že mi učitel šeptem diktoval předložky do doplňovacího cvičení Very Happy. Anglicky jsem se naučil až na VŠ od rodilého mluvčího.
_________________
Award-winning game developer
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 5. říjen 2011, 18:04:52    Předmět: Odpovědět s citátem

Jak se da zjistit zda client neposlal dalsi zpravu? Musim mit seznam uzivatelu a pak po 1 nejak zjistovat zda neco nenapsal, nebo je funkce ktera zjisti zda nekdo neco neposlal? Pouzivam WinSock2.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 5. říjen 2011, 18:48:50    Předmět: Odpovědět s citátem

kód:
   class Prijmac : public IRunnable {
   public:
      Prijmac() {
         _pokracovani = true;   
      }
      virtual unsigned long run() {
         while(_pokracovani) {
      // run this thread procedure
            
      sConnect = accept(sListen, (SOCKADDR*)&addr, &addrlen);
      if(sConnect!= INVALID_SOCKET)
      {
         cout<<"Pripojeni nalezeno.\n";
         sClient = sConnect;
         answer = send(sConnect, "ZDAREC",strlen("ZDAREC")+1,NULL);
         answer = recv(sConnect, message, sizeof(message), NULL);
         strmessage = message;
          listen(sListen,1);
         cout<<strmessage<<"\n"<<sListen<<"\n";
      }
      else
      {
      }
   
   cout << "cs";
         }
         
         return 0;
      }
      virtual void stop() {
         _pokracovani = false;
      }
   protected:
      bool _pokracovani;      
   };


Nevim z jakeho duvodu ale :
kód:
sConnect = accept(sListen, (SOCKADDR*)&addr, &addrlen);

Vzdy nejak zastavi vlakno nebo neco takoveho, protoze se uz cout << "cs"; nezobrazi, jedine kdyz se client chce pripojit.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vlatom



Založen: 29. 03. 2011
Příspěvky: 19

PříspěvekZaslal: 5. říjen 2011, 18:56:19    Předmět: Odpovědět s citátem

Jo, protože fce accept pouzastaví vykovánání vlákna dokud se nepřipojí klient, mělo by to vyřešit použití neblokujích socketů, ale v tom už se moc nevyznám a nechci tady plávat blbosti, takže si to budeš muset vygooglit... Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 5. říjen 2011, 19:00:50    Předmět: Odpovědět s citátem

Tak to stejne nakonec udelam tak ze udelam na to co jsem potreboval jine vlakno , protoze by to stejne jinak nebylo dobry. Smile Konecne to zacina fungovat vic a vic jak ma Smile.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 5. říjen 2011, 19:52:59    Předmět: Odpovědět s citátem

Takze prosim o radu, jaka existuje funkce, ktera zjisti zda nejaky client posila serveru zpravu? Chci abych mohl mit pripojenych treba 6 klientu a aby kdyz nekdo posle zpravu, server to zjistil, pak poslu tuto zpravu vsem.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Vilem Otte



Založen: 18. 09. 2007
Příspěvky: 462
Bydliště: Znojmo - Sedlesovice, Kravi Hora

PříspěvekZaslal: 5. říjen 2011, 21:03:18    Předmět: Odpovědět s citátem

Nevím jestli je ve 13 letech ideální pokoušet se o programování networkingu. Ptát se "jaká existuje funkce na toto a ono" je k ničemu, nebudeme ti zde odpovídat jakou funkci na co použít - sockety (ať už ty linuxové, nebo winsock) mají desítky možná i stovky definovaných funkcí a nikdo si je z hlavy nepamatuje (a googlit, příp. hledat v pdfkách a knihách to za tebe nebudeme).

Děláš ve ws pod Wokny, nauč se pracovat s MSDN.
_________________
Should array indices start at 0 or 1? My compromise of 0.5 was rejected without, I thought, proper consideration.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovi WWW stránky
Al



Založen: 23. 10. 2007
Příspěvky: 196

PříspěvekZaslal: 5. říjen 2011, 21:57:41    Předmět: Odpovědět s citátem

No já si ty funkce z hlavy pamatuju, zas tolik jich není. Ale ten člověk očividně vůbec nechápe principy socketů a to je potíž. Na věk 13 let je to úplně v pohodě, ale prostě člověk si má dát menší cíle, aby jich mohl v dohledné době dosáhnout, pokud možno sám, ne jen opisováním věcí z netu a z fóra, a pak z toho dosáhnutého cíle bude mít radost a to ho povede k dalším vyšším cílům. V této diskuzi je nejlepší radou klukovi neporadit nic.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 6. říjen 2011, 14:21:59    Předmět: Odpovědět s citátem

OK, tak toto vlakno smazte, protoze tu stejne na nic nikdo nenalezne odpoved. No a ja to snad nejak vyresim no Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
mival



Založen: 28. 08. 2010
Příspěvky: 85

PříspěvekZaslal: 6. říjen 2011, 15:07:10    Předmět: Odpovědět s citátem

Jen mi vadi, ze proste nedokazu porad najit jak to udelat (aby to bylo ve vlaknu). A tu mi nikdo neporadi, coz je vicemene beznadejne ted.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> C / C++ Časy uváděny v GMT + 1 hodina
Jdi na stránku Předchozí  1, 2, 3, 4, 5, 6  Další
Strana 3 z 6

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra
Nemůžete odpovídat na témata v tomto fóru
Nemůžete upravovat své příspěvky v tomto fóru
Nemůžete mazat své příspěvky v tomto fóru
Nemůžete hlasovat v tomto fóru


Powered by phpBB © 2001, 2005 phpBB Group


Vzhled udelal powermac
Styl "vykraden" z phpBB stylu MonkiDream - upraveno by rezna