Portál AbcLinuxu, 13. května 2025 20:16

Dotaz: Strácejí se cookie u mutexu.

8.12.2008 22:19 Ikita
Strácejí se cookie u mutexu.
Přečteno: 201×
Odpovědět | Admin

Zdravím,
mám takový menší problém, nejde mě ani tak o řešení problému kodu, ale spiš o možné teorie proč to nejede..

Mám takovou aplikačku(hru) client se připojí na server ten vygeneruje cookie o 4 bitech a pošle tyto cookie dalšímu serveru(myšleno jako další aplikace)  tento server odpoví, a pošle cookie z5, ale bohužel někam špatně asi.. Poněvadž chat tyto pakety už nedostane nevím vůbec proč hrabal jsem se už v kernelu(apliakce jedou na linuxu) a kompiloval vše možná jádra.
A žádná změna.
zde je posílací část  ze serveru který odpovídá, ale nikdy tyto pakety nedojdou na další server

    // zpet chatu
                cookie->type = TOCH_COOKIE_REPLY;
                send(g_pChatManager->GetSock(), cookie, len, 0);
                l_log("Send replay cookie (client %d) to chat ", cookie->chr_id);
                int iResult(send());

Naprosto nevím co může být špatně vše jede na localhostu 0.0.0.0 a když sleduju porty tak pakety tam opravdu proudí..

 

Pokud by měl někdo nějaký nápad co by to mohlo dělat byl bych mu vděčen děkuji..

 

Client je mezitím ve stavu čekaní na cookie od serveru(je seklej:D)

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

9.12.2008 07:54 luky
Rozbalit Rozbalit vše Re: Strácejí se cookie u mutexu.
Odpovědět | | Sbalit | Link | Blokovat | Admin

Z popisu te komunikace nevim o co presne se snazite, ale hlavne tezko hadat kde muze byt problem, kdyz nevim(e) jak to delate. Muzete to vice rozepsat?

Navratove hodnoty send() overujete? Opravdu ten "meziserver" ty pakety predava dal? ...

 

9.12.2008 19:09 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Strácejí se cookie u mutexu.
Odpovědět | | Sbalit | Link | Blokovat | Admin

Jako cookie se označují především jistá data uchovávající stavovou informaci v HTTP, případně něco tomu velmi podobného. Asi myslíte spíš kus textu posílaný přes TCP nebo UDP; že si to v aplikaci z nějakého důvodu nazýváte cookie spíš rozptyluje od vašeho problému (přinejmenším mě).

Mutex? Žádný nikde nevidím.

int iResult(send()); Funkci send, která nebere žádné parametry, neznám (a nezná ji ani Linux nebo POSIX obecně).

V kernelu žádná chyba ohledně síťování celkem jistě není. Pokud nefunguje aplikace, je chyba v ní a ne v kernelu.

Prosím rozepište se trochu více, a prosím trochu pečlivěji. (Pokud trpíte nějakou poruchou, pak se omlouvám.)

9.12.2008 21:00 Ikita
Rozbalit Rozbalit vše Re: Strácejí se cookie u mutexu.

Mno int iResult(send()); to byl překlep. uznávam. Mutex tam je unlock před tím zdrojékem sem se o řádek spletl pthread_mutex_unlock(&cookies_mutex);

jinak ano přes cookies posílam né text, ale číslo. Jinak v kernelu sem se harabal kvůli  Packet socket: mmaped IO musi být enabled.

Mno ten zdrojak send nevím co může být špatně sin_port mám taky definovanej atd. Pakety tam jsou a send určitě tu hodnotu pošle zkoušel jsem.

 

Chat by měl příjmout v tomto kodu:
            case TOCH_COOKIE_REPLY:
            {
                tGameSrvInfo    reply;
                char            type;
                uint            nPlyIndex;
                l_log("Received TOCH_COOKIE_REPLY message from server");

                cookie = (tChatCookie *) buf;

 

 

 

9.12.2008 21:43 luky
Rozbalit Rozbalit vše Re: Strácejí se cookie u mutexu.
  • Jak jste overoval, ze se to opravdu odesle? Ze vam tam neco lita, nebo ze se paket odesle cely a se spravnou strukturou? To same na prijimajici strane.
  • Vymena cookies vypada na uplny zacatek komunikace. Probiha pred tim nejaka uspesna komunikace, nebo to nechodi vubec?
  • Ukazky kodu jsou nic nerikajici. Psal jste to vubec vy?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.