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
|
Zaslal: 2. říjen 2011, 19:20:42 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 2. říjen 2011, 19:24:16 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 2. říjen 2011, 19:25:57 Předmět: |
|
|
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 |
|
|
perry
Založen: 28. 07. 2009 Příspěvky: 879
|
Zaslal: 2. říjen 2011, 20:22:10 Předmět: |
|
|
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 |
|
|
Marek
Založen: 28. 07. 2007 Příspěvky: 1782 Bydliště: Velká Morava
|
Zaslal: 2. říjen 2011, 20:55:54 Předmět: |
|
|
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 |
|
|
Ladis
Založen: 18. 09. 2007 Příspěvky: 1536 Bydliště: u Prahy
|
Zaslal: 3. říjen 2011, 00:46:26 Předmět: |
|
|
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í . Anglicky jsem se naučil až na VŠ od rodilého mluvčího. _________________ Award-winning game developer |
|
Návrat nahoru |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 5. říjen 2011, 18:04:52 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 5. říjen 2011, 18:48:50 Předmět: |
|
|
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 |
|
|
Vlatom
Založen: 29. 03. 2011 Příspěvky: 19
|
Zaslal: 5. říjen 2011, 18:56:19 Předmět: |
|
|
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... |
|
Návrat nahoru |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 5. říjen 2011, 19:00:50 Předmět: |
|
|
Tak to stejne nakonec udelam tak ze udelam na to co jsem potreboval jine vlakno , protoze by to stejne jinak nebylo dobry. Konecne to zacina fungovat vic a vic jak ma . |
|
Návrat nahoru |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 5. říjen 2011, 19:52:59 Předmět: |
|
|
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 |
|
|
Vilem Otte
Založen: 18. 09. 2007 Příspěvky: 462 Bydliště: Znojmo - Sedlesovice, Kravi Hora
|
Zaslal: 5. říjen 2011, 21:03:18 Předmět: |
|
|
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 |
|
|
Al
Založen: 23. 10. 2007 Příspěvky: 196
|
Zaslal: 5. říjen 2011, 21:57:41 Předmět: |
|
|
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 |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 6. říjen 2011, 14:21:59 Předmět: |
|
|
OK, tak toto vlakno smazte, protoze tu stejne na nic nikdo nenalezne odpoved. No a ja to snad nejak vyresim no |
|
Návrat nahoru |
|
|
mival
Založen: 28. 08. 2010 Příspěvky: 85
|
Zaslal: 6. říjen 2011, 15:07:10 Předmět: |
|
|
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 |
|
|
|