Już sobie poradziłem! Dla tych, którzy będą mieli ten problem daję rozwiązanie. Otóż źle zrobiłem umieszczająć funkcję recv w standardowym sdl-timerze. Miast stworzyłem nowy wątek (pthread) i tam w nieskończonej pętelcę umieściłem tę funkcję

Piszę sobię gre sieciową w sdl i silniku kyra (www.grinninglizard.com/kyra/). W funckji timera mam takie coś:

Uint32 TimerCallback(Uint32 interval)
{
        SDL_Event event;
        event.type = SDL_TIMER_EVENT;
        int ev;
        if(recv(gniazdo, &ev, sizeof(ev), MSG_DONTWAIT) > 0)
                event.user.code = ev;
        else
                event.user.code = 0;
        SDL_PeepEvents(&event, 1, SDL_ADDEVENT, 0);
        return TIMER_INTERVAL;
}

czyli standardowy timer jaki jest używany (chyba) w większości gier pisanych w sdl. Oprócz tego próbuje on odebrać dane od drugiego komputera. Dalej mam taki kod:

case SDL_KEYDOWN:
                                switch(event.key.keysym.sym)
                                {
                                        case SDLK_LEFT:
                                                moj -> DeltaPos(-8, 0);
                                                if(moj -> GetAction() -> Id() != LUD_lewo)
                                                        moj -> SetAction(LUD_lewo);
                                                ev = 1;
                                                send(gniazdo, &ev, sizeof(ev), 0);
                                                break;
...
case SDL_TIMER_EVENT:
                                switch(event.user.code)
                                {
                                        case 1:
                                                jego -> DeltaPos(-8, 0);
                                                if(jego -> GetAction() -> Id() != LUD_lewo)
                                                        jego -> SetAction(LUD_lewo);
                                                break;
                                                engine -> Draw();
...

Problem tkwi w tym, że jeżeli przed pętlą while (główną pętlą gry) umieszczę funckję SDL_KeyRepeat, czyli funkcję dzięki której można trzymać np. naciśniętą strzałkę w lewo i ludzik będzie się płynnie przesuwał, na drugim komputerze będzie straszliwe opóźnienie, zobaczcie zresztą w akcji: <url>stopczanski.pl/ludkisiec.tar.gz</url> (na jednej konsoli: ./ludkisiec a na drugiej ./ludkisiec 127.0.0.1). Czyżby zwykłe linuxowe sockety były za wolne na tego typu gry? Jak inaczej można by to było napisać, aby ludki się jakoś synchronizowały?