.[ ČeskéHry.cz ].
SDL_Net

 
odeslat nové téma   Odpovědět na téma    Obsah fóra České-Hry.cz -> Obecné
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 31. prosinec 2007, 20:47:01    Předmět: SDL_Net Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
nou



Založen: 28. 07. 2007
Příspěvky: 1047

PříspěvekZaslal: 31. prosinec 2007, 22:13:36    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 31. prosinec 2007, 23:08:40    Předmět: Odpovědět s citátem

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
Zobrazit informace o autorovi Odeslat soukromou zprávu
survik1



Založen: 22. 08. 2007
Příspěvky: 107

PříspěvekZaslal: 31. prosinec 2007, 23:27:53    Předmět: Odpovědět s citátem

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
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 -> Obecné Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
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