Archiwum kategorii ‘issues’

flash.net.Socket::flush()

niedziela, Kwiecień 22nd, 2007

Jak nie urok to sraczka. Po sześciu godzinach, rozmowie z inou i mooską i przeczytaniu tego, stwierdziłem, że się poddaję. Wygląda na to, że nie ma żadnego sposobu na poznanie statusu bufora wyjściowego flashowego socketa. Dla bufora wejściowego, czyli danych nadchodzących mamy Socket::bytesAvailable, oraz zdarzenie ProgressEvent.SOCKET_DATA. Niestety w przeciwieństwie do informacyjnego rozpasania wejścia na wyjściu mamy biedne Socket::flush(). Żadnej informacji, że nasze dane już u dotarły do adresata (część bufora się wypróżniła ;>). Przy małej ilości danych to żaden ból, jeśli jednak w ten sposób chcemy wysłać bitmapę, czy plik i pokazać postęp to problem już jest poważny. Jeśli usługa nasłuchująca po drugiej stronie nie da nam odpowiedzi, że już wszystko zebrała, to możemy sobie czekać do usranej śmierci.

Próbowałem wszystkiego, łapania wyjątków, sprawdzania bieżącej pozycji czytanego ByteArray’a, nasłuchiwania  wszystkiego co się da i na drzewo nie ucieka. Nada. Nic…