接收跟踪设备故障串

时间:2015-03-03 17:42:02

标签: java serversocket

我正在开发一个套接字服务器,它将从中国跟踪设备TK-06A接收​​数据。我的服务器也收到了以下信息:

 �L�l}�8���

您认为自己可以做什么?我用什么来解决这个问题? 我的代码下面是我用来测试的。

 public static void main(String[] args) {
    try {
        InputStream input = null;
        int charsRead = 0;
        //Criando um servidor que atendera na porta 8080
        int port = 5016;
        char[] inputChars = new char[1024];
        ServerSocket server = new ServerSocket(port);
        while (true) {
            try {
                System.out.println("Aguardando conexao!!!");
                Socket socket = server.accept();
                InputStreamReader isr = new InputStreamReader(socket.getInputStream());
                BufferedReader inputStream = new BufferedReader(isr);
                int data = 0;
                System.out.println("Reading from stream:");
                if ((charsRead = inputStream.read(inputChars)) != -1) {
                    System.out.println("Chars read from stream: " + charsRead);
                    System.out.println(inputChars);
                    System.out.flush();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }

        }
    } catch (Exception e) {
        e.printStackTrace();
    }
}

1 个答案:

答案 0 :(得分:0)

您应提供encoding参数,否则默认为当前操作系统encoding = non-portable。

InputStreamReader isr =
    new InputStreamReader(socket.getInputStream(), encoding);

编码可以尝试StandardCharsets.UTF_8(Charset),UTF_16LE和中文BIG编码(如String)。

InputStreamReader是从二进制数据(InputStream, byte[])到文本(Reader, String, char)的桥梁 - 在java中始终是Unicode,用于混合所有脚本。