tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
758
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    duermer duermer ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    33
    Hi,

    Hab en Problem und zwar empfängt mein Programm von einem Servlet Daten.

    auch alles soweit.

    Nur beim ME 65 bleibt er an der Stelle stehen, an der ich die Daten aus dem DataInputStram lese.
    Hab das so weit eingegrenzt, dass ich mir sicher bin, dass hier das Problem liegt.

    Hier der Teil der die Daten auslesen soll:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
                        StringBuffer text = 
                                       new StringBuffer(); 
                    DataInputStream din = new DataInputStream(conn.openInputStream()); 
                    int n = din.readInt(); 
      
                    text.append(din.readUTF() ); 
                   System.outprintln(text.toString());

    und bei der Zeile text.append(din.readUTF()); bleibt er stehen.

    Gibt es eine andere Möglichkeit die Daten auszulesen, als mit readUTF.
    Vielleicht mit readByte()?
    Ich weiß nur nicht wie?

    Es gibt doch bestimmt ne Möglichkeit die Daten auszulesen ohne readUTF zu verwenden

    Wäre um jede Hilfe dankbar.

    Mit freundlichen Grüßen
    Duermer
     

  2. #2
    torsch2711 torsch2711 ist offline Mitglied Brokat
    Registriert seit
    Oct 2004
    Ort
    Hessen
    Beiträge
    310
    Nun du könntest folgendes tun:


    StringBuffer text = new StringBuffer();
    DataInputStream din = new DataInputStream(conn.openInputStream());
    int n = din.readInt();
    byte[] buffer=new byte[1024];
    int n=din.read(buffer);
    String temptext=new String(buffer);
    text.append(temptext );

    Ich nehme hier an, dass ein 1024 byte grosser Buffer langt, falls du einen grösseren brauchst ändere die Zahl.
    Das sollte dir weiter helfen.

    Grüsse
    Torsten
     
    "There's nothing we have to fear, except Fear itself....."

  3. #3
    duermer duermer ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    33
    Danke.

    auch
    Nur auf dem ME65 so auch nicht.

    Da kommt anstatt des geschickten Strings folgendes:

    <version="1.0!?><!DOCT ...

    Den Rest kann ich nicht lesen, weil das Display es nicht weiter anzeigen kann.
    Aber das sind doch normalerweise so XML-Headers oder so was ähnliches.

    Was ist das?

    Und wie komm ich so an meine richtige Daten.

    Mfg Duermer
     

  4. #4
    duermer duermer ist offline Mitglied Bronze
    Registriert seit
    Mar 2004
    Beiträge
    33
    Hab es jetzt auch ausprobiert, ob auch am ME65 was ankommt, indem ich die din.readInt() ausgegeben hab.

    Und da kommt ne größere Zahl raus.
    Also auf keinen Fall -1.

    An was kann das denn noch liegen.

    Hab nämlich damit jetzt en rießen Problem.

    Weil ich mein Programm jetzt auf 6 ME65 drauf machen soll.

    Es aber nicht geht.

    Was muss ich da denn noch machen.
    Weil es doch auf allen anderen Handys geht.

    Vielleichtstimmen ja irgendwelche Konfigurationen nicht.
    Wäre ihm echt unendlich dankbar.

    Hier mal mein Code für die HTTP Verbindung:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    
            try{
                ByteArrayOutputStream bout = new ByteArrayOutputStream();
                DataOutputStream dout = new DataOutputStream(bout);
                dout.writeUTF(tcs.USER.getString());
                tcs.data = bout.toByteArray();
                dout.close();
            }
            catch(IOException ioe){
                tcs.stat3.setLabel("Fehler weiter oben");
                repaint();
            }
            try {
               
                 st1.setLabel("los gehts"); 
                
                String url = "http://lico-server.dyndns.org:8080/TCS/senden";
                HttpConnection conn = (HttpConnection)Connector.open(url);
      
                conn.setRequestMethod(
                HttpConnection.POST );
                conn.setRequestProperty(
                "User-Agent",
                "Profile/MIDP-1.0 Configuration/CLDC-1.0" );
                conn.setRequestProperty(
                "Content-Language", "en-US" );
                conn.setRequestProperty(
                "Accept", "application/octet-stream" );
                conn.setRequestProperty(
                "Connection", "close" );
                conn.setRequestProperty(
                "Content-Length",
                Integer.toString( tcs.data.length ) );
                OutputStream os = conn.openOutputStream();
                os.write(tcs.data);
                os.close();
                 
                
                   try{
                    int rc= conn.getResponseCode();
                    if( rc == HttpConnection.HTTP_OK ){
                        st1.setLabel("am Anfang der Request"); 
                        StringBuffer text =
                        new StringBuffer();
                                            st1.setLabel("Vielleicht der Input Stream"); 
                        repaint();
                        DataInputStream din = new DataInputStream(conn.openInputStream());
                        tcs.n = din.readInt();
                        System.out.println(tcs.n +"");
                        st1.setLabel(tcs.n +""); 
                        String t="";
                        repaint();
                       
     
                        repaint();
                        text.append(din.readUTF());
                        
                        st1.setLabel("Ist nicht der read UTF"); 
                        
                        repaint();
                      
                        tcs.msg = text.toString();
                        
                        System.out.println(tcs.msg); 
                        //st1.setLabel(tcs.msg); 
                        repaint();
                        
                        
                        
                        tcs.setRecord(tcs.msg);
                        
                        
                        
                        st1.setLabel("RMS past noch"); 
                        repaint();
                        
                        
                        
                        
                        tcs.teilen(tcs.msg);
                        
                        st1.setLabel("teilen is OK"); 
                        repaint();
                    }else{
                        tcs.down();
         tcs.stat3.setLabel("leck mich am ");
                        repaint();
                        tcs.Projekt.start(tcs);
                        tcs.display.setCurrent(tcs.Projekt);
                    }
                    
                }
                catch(IOException ioe){
                    tcs.down();
                    st3.setLabel("Fehler"+ioe.getMessage());
                    repaint();
                    tcs.stat3.setLabel(tcs.msg);
                    tcs.Projekt.start(tcs);
                    tcs.display.setCurrent(tcs.Projekt);
                }
            }
            catch(IOException ioe){
                tcs.down();
                tcs.stat3.setLabel("Error");
                repaint();
                tcs.Projekt.start(tcs);
                tcs.display.setCurrent(tcs.Projekt);
            }

    Das mit tcs.n oder so sind Variablen in meinem Haputprogramm.

    Hier en Teil aus meinem Servet:
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    
    String text ="Testtesttest";
            //Hier geht der Send Prozess von statten
            StringTokenizer tok = new StringTokenizer( 
                                                 text );
            Vector v = new Vector();
            while( tok.hasMoreTokens() ){
                v.addElement( tok.nextToken() );
            }
     
     
            ByteArrayOutputStream bout = 
                               new ByteArrayOutputStream();
            DataOutputStream dout = 
                              new DataOutputStream( bout );
          
            int size = v.size();
            dout.writeInt(5);
            for( int i = 0; i < size; ++i ){
                dout.writeUTF( (String) v.elementAt( i ) );
            }
            byte[] data = bout.toByteArray();
     
            // set the response headers and data...
     
            response.setContentLength( data.length );
            response.setStatus( response.SC_OK );
     
            OutputStream out = response.getOutputStream();
            out.write( data );
            out.close();
    Geändert von duermer (01.12.04 um 21:45 Uhr)
     

Ähnliche Themen

  1. Antworten: 12
    Letzter Beitrag: 08.01.11, 02:05
  2. Funktionsaufruf nach AJAX - ohne eval, ohne jQuery?
    Von ZodiacXP im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 02.11.10, 11:53
  3. Frame ohne Minimieren. Schließen, Maximieren und ohne Titel
    Von mrno im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 16.07.05, 00:08
  4. Antworten: 1
    Letzter Beitrag: 02.06.05, 12:23
  5. content anzeigen ohne Frames und ohne Layer
    Von Christoph im Forum HTML & XHTML
    Antworten: 2
    Letzter Beitrag: 11.03.02, 14:03