Witam. Postanowiłem zacząć się bawić z siecią GG i spróbować się do niej podłączyć spod Javy. Znalazłem w sieci opis protokołu: http://toxygen.net/libgadu/protocol/. Niestety - podczas próby uzyskania IP i portu serwera, do którego mam się podłączyć, pojawił się problem. Postąpiłem według tego:

Żeby wiedzieć, z jakim serwerem mamy się połączyć, należy za pomocą HTTP połączyć się z appmsg.gadu-gadu.pl i wysłać:

GET /appsvc/appmsg4.asp?fmnumber=NUMER&version=WERSJA&fmt=FORMAT&lastmsg=WIADOMOŚĆ
Accept: image/gif, image/jpeg, image/pjpeg, ...
Accept-Language: pl
User-Agent: PRZEGLĄDARKA
Pragma: no-cache
Host: appmsg.gadu-gadu.pl

NUMER jest numerem Gadu-Gadu. WERSJA jest wersją klienta w postaci „A, B, C, D” (na przykład „5, 0, 5, 107” dla wersji 5.0.5 build 107). FORMAT określa czy wiadomość systemowa będzie przesyłana czystym tekstem (brak zmiennej „fmt”) czy w HTMLu (wartość „2”). WIADOMOŚĆ jest numerem ostatnio otrzymanej wiadomości systemowej. PRZEGLĄDARKA może być jednym z poniższych tekstów:

* Mozilla/4.04 [en] (Win95; I ;Nav)
* Mozilla/4.7 [en] (Win98; I)
* Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)
* Mozilla/4.0 (compatible; MSIE 5.0; Windows NT)
* Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
* Mozilla/4.0 (compatible; MSIE 5.0; Windows 98)

Na postawione w ten sposób zapytanie, serwer powinien odpowiedzieć na przykład tak:

HTTP/1.0 200 OK

0 0 217.17.41.84:8074 217.17.41.84

No więc tworzę połączenie z appmsg.gadu-gadu.pl (przez HttpURLConnection) i ustawiam setDoInput i setDoOutput na true. Następnie strumieniem przesyłam odpowiedni tekst i pobieram odpowiedź.

Niestety, zamiast właściwej odpowiedzi serwera dostaję wyjątek java.net.SocketException: Unexpected end of file from server. Jak rozwiązać ten problem? Gdy próbuję w ten sposób przeczytać komunikaty z innych serwerów, dostaję tylko tekst OK.