Java TCP/ip klient felmeddelande

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Christian
Inlägg: 86
Blev medlem: 3 november 2003, 22:54:49

Java TCP/ip klient felmeddelande

Inlägg av Christian »

Hej! Håller på att skriva kod för en TCP-klient som ska ansluta mot en server och ta emot det som skickas från servern. Detta fungerar bra mot en TCP server som är skriven i java. Men när jag försöker ansluta mot en annan server som består av ett inbyggt system så får jag följande felmeddelande:
"java.io.StreamCorruptedException: invalid stream header: 30313233"

30 31 32 33 är den hexadecimala representationen av datan som skickas från servern alltså ascii 0 1 2 3.
Datan tas alltså emot på nåt sätt men något blir fel

Vad kan meddelandet bero på?

koden för klienten finns nedan:

Kod: Markera allt

import java.net.*;

import java.io.*;

public class TCPClientD {

    private String serverIP;
    private int serverPort;
    String fail;

    public TCPClientD(String serverIP, int serverPort) {
        this.serverIP = serverIP;
        this.serverPort = serverPort;
        Thread thread = new Thread(new ConnectAndListenToServer());
        thread.start();
    }

    private class ConnectAndListenToServer implements Runnable {

        public void run() {
            try {
                Socket socket = new Socket(
                        InetAddress.getByName(serverIP),
                        serverPort);

                ObjectInputStream input = new ObjectInputStream(
                        socket.getInputStream());
                String message;
             
                while (true) {

                    message = input.readUTF();
                    System.out.println(message);

                }
            } catch (IOException e) {
                fail = e.getMessage();
                System.out.println(e);
                System.out.println(fail);
            }
        }
    }

    public static void main(String[] args) {
        new TCPClientD("192.168.0.115", 5555);
    }
}
Tacksam för svar!
Maalobs
Inlägg: 1304
Blev medlem: 3 februari 2005, 14:35:15
Ort: Stockholm

Re: Java TCP/ip klient felmeddelande

Inlägg av Maalobs »

Vad händer om du läser som ISO-8859-1 istället för UTF?

Jag skulle installera någon packet sniffer och spela in anslutningen mot Java-servern och mot din embedded-server, och sedan jämföra inspelningarna för att se vad som skiljer.
labmaster
Inlägg: 2919
Blev medlem: 5 april 2011, 01:10:25

Re: Java TCP/ip klient felmeddelande

Inlägg av labmaster »

Du behöver inge packet sniffer för att komma på vad det är för fel. Jag har fått samma felmeddelande i en applikation men kan inte komma på var jag har programkoden och inte heller vad jag gjorde för att få det att fungera utöver att jag läste en massa dokumentation och testade på olika sätt.

Har du googlat på texten från felmeddelandet? Eventuellt hittade jag lösningen när jag själv googlade.
Christian
Inlägg: 86
Blev medlem: 3 november 2003, 22:54:49

Re: Java TCP/ip klient felmeddelande

Inlägg av Christian »

Hittade lösningen och det var att använda DataInputStream istället för ObjectInputStream..

Hittade en länk med ett foruminlägg som behandlade just detta =)

http://www.daniweb.com/software-develop ... ads/284804

Tack för svaren!
labmaster
Inlägg: 2919
Blev medlem: 5 april 2011, 01:10:25

Re: Java TCP/ip klient felmeddelande

Inlägg av labmaster »

Japp, det var precis den lösningen jag gjorde också. Hittade programkoden och skulle precis lägga in svar till dig om detta.
Skriv svar