Zobrazit předchozí téma :: Zobrazit následující téma |
Autor |
Zpráva |
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 31. prosinec 2007, 20:47:01 Předmět: SDL_Net |
|
|
dobrý den. Snad v tuhle noční silvestrovskou hodinu ještě někdo žije. Mám problém s jedním kódem. SDL_Net jsem se začal učit dnes a jen z dokumentace, takže moc netuším, co píši.
Zatím jsem vytvořil serverovou a hostitelskou aplikaci. Hostitelská se na serverovou část připojí bez problému, avšak serverová již neodchytí žádné zprávy o přijetí (alespoň nevím jak na to?)
"Chybový" řádek je vyznačen tučně.
kód: |
int main(int argc, char *argv[])
{
Init();
//pro hosta
/*if (!Connect()) draw_red();
else draw_green();*/
bool done = false;
while(!done)
{
done = !ProcessEvent();
//pro server
if (!Connect()) draw_red();
else draw_green();
}
Exit();
return 0;
}
bool Connect()
{
IPaddress ip;
TCPsocket tcpsock;
TCPsocket new_tcpsock;
//host data
/*if(SDLNet_ResolveHost(&ip,"89.102.163.106",9999) == -1) return false;
tcpsock=SDLNet_TCP_Open(&ip);
if(!tcpsock) return false;*/
//server data
if(SDLNet_ResolveHost(&ip,NULL,9999)==-1) return false;
[b]tcpsock=SDLNet_TCP_Open(&ip);
if(!tcpsock) return false;[/b]
new_tcpsock=SDLNet_TCP_Accept(tcpsock);
if(!new_tcpsock) return false;
return true;
}
|
Pokud funkce connect() dojde až k return true, ukáže se obrázek o připojení. V opačném případě nikoliv. |
|
Návrat nahoru |
|
|
nou
Založen: 28. 07. 2007 Příspěvky: 1047
|
Zaslal: 31. prosinec 2007, 22:13:36 Předmět: |
|
|
server:
otvorime socket na pocuvanie
kód: |
IPaddress ip;
TCPsocket server_tcpsock;
SDLNet_ResolveHost(&ip,NULL,9999);
serber_tcpsock=SDLNet_TCP_Open(&ip); |
poom pravidelne volame
kód: |
new_tcpsock=SDLNet_TCP_Accept(server_tcpsock); |
ak vrati NULL tak nie je nic na prijatie.
ty mas chybu mozno v tom ze stale znovuotvaras pripojenie na porte 9999 take otvori sa prvykrat a potom neustale vracia false uz v tom tucnom riadku _________________ Najjednoduchšie chyby sa najtažšie hľadajú. |
|
Návrat nahoru |
|
|
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 31. prosinec 2007, 23:08:40 Předmět: |
|
|
Bohužel to mi vyběhne hláška o pádu programu o nečekané chybě.
kód: |
SDLNet_ResolveHost(&ip,NULL,9999);
server_tcpsock=SDLNet_TCP_Open(&ip);
new_tcpsock=SDLNet_TCP_Accept(server_tcpsock); //pokud zakomentuji (+ samozřejmě následující řádek) tak program nespadne.
if (new_tcpsock == NULL) return false;
|
|
|
Návrat nahoru |
|
|
survik1
Založen: 22. 08. 2007 Příspěvky: 107
|
Zaslal: 31. prosinec 2007, 23:27:53 Předmět: |
|
|
ad nou:
Ah, děkuji, už jsem to pochopil a program již funguje. Konečně budu moci rozšířit app o multiplayer x) |
|
Návrat nahoru |
|
|
|
|
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