Skocz do zawartości

39DLL i C++


Konrad-GM

Rekomendowane odpowiedzi

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

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

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...