Keresés
Hírlevél
 
Kiemelt témák
»Hogy viszonyul ehhez a család?
»Legjobb metodika emberi relációk tárolására
»A programozó hibája, hogy törik a programját?
»Jogosultság kezelés mezőszinten
Állás/munka
»Wordpress szakértőt keresünk
»Kamu álláshirdetők listája
»Front-end fejlesztő / Sitebuilder
»DataStore Developer
»PHP programozó, webfejlesztő munkát keres
» több téma
Tudástár
?HTML-ben a Flash átméretezés torzul
Eredeti mezőnevek lekérdezése
?Input mezőből visszakapott adat probléma
Oldalon keresés 8x írja ki az eredményt
?XML-ből sok szövegmező
TinyMCE és az ékezetek
?Rengeteg hasonló kép betöltése gyorsan (PHP)
Ékezetes kar. nem minden táblában jól
?Shelltreeview gond
Grafikon rajzolás probléma
?Onclick= php függvény
?Egyenes megrajzolása
?Access-ből adott xml fájl kinyerése
Listázás időpont szerint
Exportálás változó könyvtárba
» több téma
Társalgó
»A programozásból jól meg lehet élni?
»MFC tanulás
»Könyvet adok-veszek
»Hogy viszonyul ehhez a család?
»Nintendo wii
»Letölthető az új Rad Studio XE és Delphi XE
»Weblap véleményezés
»Játékmotor elmélet
»Informatikai bulvárlap
»Delphi-ről C++-ra váltás
» több téma
ASP  |  C#  |  C++  |  CSS  |  Delphi  |  Flash  |  HTML  |  Java  |  JavaScript  |  Pascal  |  Perl  |  PHP  |  Python  |  Visual Basic  |  Visual C++  |    »    

Tudástár

»

Java socket - BufferedReader olvasás

»

Java socket - BufferedReader olvasás

nyitotta: $name, idő: 2010.03.12., moderátor: moderator
  Értesítés változás esetén Felvétel kedvencekhez Küldés emailben Nyomtatható verzió

Kategóriák:Programozási nyelvek » Java

Sorrend:
Időzóna:
Blokkméret:
Sziasztok!

Épp egy egyszerű MSN klienst írok jávában, de problémáim vannak a BufferedReader-en keresztül olvasással.Jelenleg a program kiküld egy parancsot, arra megérkezik a válasz, és ha a válasz megérkezett akkor kiküld mégegy parancsot, de erre már nem érkezik meg a válasz. A probléma a programmal van, mert ha betelnetelek és kézzel beírogatom a parancsokat a szervernek, akkor minden rendesen működik.
Szerintetek mi lehet a gond?
Előre is köszi a válaszokat!


    public Main() {

        try {
            socket = new Socket("messenger.hotmail.com", 1863);
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            out = new PrintWriter(socket.getOutputStream(), true);
        } catch (UnknownHostException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
        }

        start();
    }


    public void start() {
        String text = null;

        out.println("VER " + id + " MSNP8 CVR0\r\n");
        System.out.println("VER " + id + " MSNP8 CVR0\r\n");
        id++;
       
        while(true) {
            try {
                if((text = in.readLine()) != null) {
                    System.out.println(text);
                    if(text.equals("VER 1 MSNP8")) {
                        out.println("CVR 2 0x0409 win 4.10 i386 MSNMSGR 6.2.0208 MSMSGS xy@xy.hu\r\n");
                        System.out.println("CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS xy@xy.hu\r\n");
                    }
                }
            } catch (IOException ex) {
            }

        }



    }
Biztos, hoby ket CRLF-vel kell vegzodjon egy uzenet..? println() alapbol hozzaad egy ujsort a stringhez...
Erre én is gondoltam, viszont ha simán print-el küldöm, az nem tetszik a szervernek, így működik ahogy most van. Csak a CVR 2 0x0409 win 4.10 i386 MSNMSGR 6.2.0208 MSMSGS xy@xy.hu\r\n-re már nem érkezik válasz.
Akkor viszont ne 'println' legyen, csak 'print'. Esetleg dupla soremelést vár? \r\n\r\n

Meg kellene hallgatni, mi is megy a dróton igazából (ethereal, tcpdump)
Az előbb írtam, hogy már volt print(), és úgy nem működik.
A programmal van baj, nem a kommunikációval, ezt is írtam. Csak nem tudom mi.
Biztos, hogy a szervertol erkezo uzenetek mindig ujsorral vannak lezarva..?


out.println("CVR 2 0x0409 win 4.10 i386 MSNMSGR 6.2.0208 MSMSGS xy@xy.hu\r\n");
                        System.out.println("CVR 2 0x0409 win 4.10 i386 MSNMSGR 5.0.0544 MSMSGS xy@xy.hu\r\n");

Itt miert kulonbozik a ket ertek..?

Szerk:


if(text.equals("VER 1 MSNP8")) {

Probald equals() helyett startsWith()-el!
Biztos, hogy mindig azzal vannak.
Azért különbözik, mert átírtam, a System.out.println-el történő kiírás csak tájékoztató jellegű volt magamnak, lusta voltam ebben is átírni.
Egyébként felesleges startWith-el próbálkozni, mert a feltétel teljesül, és ki is megy az üzenet.
Én arra gondoltam, hogy a BufferedReader-el valahogy rosszul olvasom a ciklusban be a dolgokat.
Az előbb írtam, hogy már volt print(), és úgy nem működik.
A programmal van baj, nem a kommunikációval, ezt is írtam. Csak nem tudom mi.


az, hogy print() -el nem működik nem jelenti azt, hogy println() -al jó.


out.print("VER " + id + " MSNP8 CVR0\r\n");                                                   
out.flush();

és


out.print("CVR 2 0x0409 win 4.10 i386 MSNMSGR 6.2.0208 MSMSGS xy@xy.hu\r\n");                     
out.flush();

Belépés
E-mail cím:
Jelszó:

RSS források
-Hírek
-Cikkek
-Fórumok
-Állás/munka
Top pontgyűjtők
»Micu1.030
»Interlock280
»mezofi150
»Pitta_100
»Frostech0100
»szbzs.2100
»Hack100
»Riha60
»Akhiles50
»mrchandra50
Top wikieditorok
»Sting
»Doi
»FlamingClaw
»Argathron
»Csaboka2
»Vodka
»Joexy
»Ivn
»Balucinho
»Kelemzol
» ugrás a wikire
A nap kifejezései
»Algoritmus
»Hogyan kezdjem el
»Perl
» ugrás a wikire
Hírek
»Megérkezett a PostgreSQL 9.0 kiadásra jelölt változata
»Letölthető az új Rad Studio XE és Delphi XE
»Function-X digitális művészeti találkozó és demoscene party
»Webfejlesztőknek szóló közösségi oldalt indított a Microsoft
»Letölthető a hardvergyorsított Chrome 7 első fejlesztői kiadása
» több hír
PC Fórum hírek
»Itt az első kép az AMD nyolcmagos processzoráról
»"Szuperdizájnos" érintő-egeret mutatott be a Microsoft
»Szabadalmaztatta a számítógép kikapcsolását a Microsoft
»Vírusriadót váltott ki a webezőknél a Google
»Ingyen iWiW-ezhetnek mobiljaikról a T-Mobile-osok
»Automatikusan kiválogatja legfontosabb leveleink a Google
»OOo4Kids - ingyenes Office csomag gyerekeknek
»Új, gyorsabb Core i3 és Pentium processzorokat jelentett be az Intel
Tagi blogok
»PSP
»Első Programozó
»USB
»PHP, mint sablonmotor egyszerűen