1

您好,我正在开发一个适用于 windows(C#)和 android(Java)的应用程序,这两者通过 TCP 进行通信,我让它们都相互发送字符串,但是当我想查看接收到的字符串是否等于“abc”时,由于某种原因,它不适用于 java 端(我认为)。这是android端的一些java代码

int bytesRead;
byte[] outputOutStream = new byte[1024];
bytesRead = ins.read(outputOutStream, 0, outputOutStream.length);

String received;
received= Integer.toString(bytesRead);

String str = new String(outputOutStream);

txtView1.setText(str);

String code = "abc";
if (str.equals(code)) {
    AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create();
    alertDialog.setTitle("You Said...");
    alertDialog.setMessage(str);
    alertDialog.show();
}

但是由于某种原因,当我让 Windows(C#) 通过发送字符串“abc”时它不会AlertDialog弹出。

4

1 回答 1

1

使用 转储字符串的字节内容Arrays.toString(str.getBytes())

我怀疑字符串最后会有很多空字节,因为outputOutStream没有完全填充。您需要的构造函数是String(byte[] bytes, int offset, int length)bytesRead使用 0 作为偏移量和长度来调用它。

于 2013-05-26T01:28:00.297 回答