Wiem, wiem… podobny temat już był, ale w tym poruszę kilka nowych wątków w tej jakże palącej kwestii...
Po pierwsze chciałbym zauważyć, że błąd, jaki ma miejsce (czasem) podczas wysyłania obrazków nie występuje tylko w przypadku korzystania z protokołu GG, dokładnie to samo dzieje się, gdy wysyłamy (a raczej odbieramy, gdyż błąd występuje po stronie odbiorcy) obrazy za pomocą AQQ. Być może obie wtyczki korzystają z jednej klasy obsługującej wysyłanie obrazów. Błąd ten dręczy mnie już od wielu miesięcy i do tej pory nie doczekałem się żadnej aktualizacji rozwiązującej ten problem.
Do tej pory wydawało mi się, że powodem tego błędu było przepełnienie jakiegoś buforu gdyż zjawisko to pojawiało się zazwyczaj po wysłaniu pewnej ilości obrazów (przynajmniej u mnie). Zauważyłem też, że program pozwalał na odebranie znacznie większej ilości małych obrazków zanim się wysypał natomiast w przypadku dużych zdjęć (oczywiście chodzi mi o ilość danych a nie pikseli), błąd pojawiał się znacznie szybciej (stad moje przypuszczenia, że chodzi o przepełnienie jakiegoś bufora).
Ostatnio postanowiłem trochę przysiąść i upewnić się czy rzeczywiście w tym tkwi błąd. Używając wtyczki AQQ (w przeciwieństwie do GG umożliwia wysyłanie wiadomości samemu sobie) wysyłałem do siebie obrazy. W ten sposób po każdym wysłaniu otrzymywałem w oknie po 2 obrazki, ten od nadawcy i ten dla odbiorcy za każdym razem wysyłając tak długo aż wystąpi błąd, po czym zapisywałem zebrane w każdej próbie obrazy i sumowałem ich wielkość, aby potwierdzić lub wykluczyć hipotezę z buforem. Ku mojemu zdziwieniu okazało się, że ilość w ten sposób uzyskanych danych w każdej próbie była różna, co wykluczyło moje pierwsze podejrzenia. Zacząłem, więc porównywać pary obrazów (ten od nadawcy i ten do odbiorcy) w ramach jednej próby i jak nie trudno się domyślić ich wielkości były identyczne, ale tylko do momentu wystąpienia błędu. Po pojawieniu się raportu generowanego przez windę mówiącego o tym, że program zostanie zamknięty, zapisywałem ostatni obrazek "od nadawcy" na dysk, po czym, pozwalałem Konnektowi się wyłączyć i uruchamiałem go ponownie nie podłączając się przy tym do sieci AQQ, aby uniknąć jakiegoś doczytania, którego nie mogłem wykluczyć gdyż nie wiem jak dokładnie działa sieć AQQ. Mimo braku połączenia pokazał mi się komunikat, o nie przeczytanej wiadomości, co znaczyło, że obrazek został w całości wysłany przed zamknięciem się programu (poza tym przed pojawieniem się błędu pojawiało się w oknie potwierdzenie wysłania obrazka). Po porównaniu obrazka sprzed zamknięcia Konnekta z jego odpowiednikiem otrzymanym po ponownym jego uruchomieniu okazało się, że ich wielkości są różne!
Konkluzja:
Jakaś klasa używana podczas wysyłania obrazków w AQQ i GG sprawdza sumę kontrolną, CRC lub po prostu wielkość otrzymanego obrazu i porównuje ją z tym, co powinna otrzymać wg tego, co wyliczył nadawca i gdy to się nie zgadza zamiast retransmisji nastepuje kraksa Konnekta i stad bierze się ten upierdliwy błąd, choć mogę się mylić
Pozdrawiam i gratuluję świetnego programu.