Konrad-GM Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 Witam, mam problem z zaprzęgnięciem 39dll do pracy. Otóż piszę swój projekt w C++ i dołączam sourca tegoż dlla. Połączenie po przez TCP/UDP działa, jednak są problemy z odbieraniem i wysyłaniem danych... Tworzenie serwera: mServer = new CSocket; if( !mServer->tcplisten( 14804, 2, true ) ) CCore::showException( 0x20, "TCP listen failed" ); while( !(mClient = mServer->tcpaccept( true )) ); // Create players mMaster = new CMasterPlayer( 0, mClient ); mOthers = new COthersPlayer( 0, mClient ); Dołączanie do serwera: mServer = new CSocket; if( !mServer->tcpconnect( "127.0.0.1", 14804, true ) ) CCore::showException( 0x200, "TCP connect failed" ); // Create players mMaster = new CMasterPlayer( 0, mServer ); mOthers = new COthersPlayer( 0, mServer ); Wysyłanie danych: mBuffer->clear(); mBuffer->writefloat( mTransform.mX ); mBuffer->writefloat( mTransform.mY ); mSend->sendmessage( "127.0.0.1", 14804, mBuffer ); Odbieranie danych: mBuffer->clear(); while( true ) { int size = mRecv->receivemessage( sizeof(mTransform), mBuffer ); if( size == 0 ) CCore::showException( 0x30, "Player was left" ); else if( size < 0 ) break; else { mTransform.mX = mBuffer->readfloat(); mTransform.mY = mBuffer->readfloat(); } } Jednak to nie działa... wo gule nie odbiera 'żadnych' danych ;p Dlaczego to nie działa? Jakby co, to mogę dać pełny src. Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
PsichiX Opublikowano 25 Kwietnia 2010 Udostępnij Opublikowano 25 Kwietnia 2010 domyslam sie ze odbiera ale nie w calosci. dla tego ze winsock dzieli pakiety przy przesylce wedle wlasnego uznania - wlacz algorytm nagle'a u obu przy conneccie i akceptacji to bedzie male porcje danych wysylal w calosci (choc i tak to jest zalezne od implementacji). nie wiem jak z asynchroniczyn polaczeniem, 39dll chyba ustawia go automatycznie dla socketow. Jak cos nie zadziala to zapraszam na GG :) Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Konrad-GM Opublikowano 25 Kwietnia 2010 Autor Udostępnij Opublikowano 25 Kwietnia 2010 Lol, przy wywołaniu receivemessage, pierwszy argument ustawiłem na 0... i działa :P E: A tak przy okazji, nie działa "Other player was left", wyłączam klienta/serwer i nic się nie dzieje ;p Odnośnik do komentarza Udostępnij na innych stronach Więcej opcji udostępniania...
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się