我正在尝试使用网络流(tcp / ssl)向服务器(即本地C#控制台应用程序)编写一些字符串(ascii)。代码如下所示:
public void SendMessage(String message) throws IOException {
OutputStream stream = client.getOutputStream();
// message is a String of 27 characters.
stream.write(message.getBytes("US-ASCII"), 0, message.getBytes("US-ASCII").length);
stream.flush();
}
这在模拟器上工作正常,但是,当我在我的设备上运行应用程序(Lolipop 5.0.2上的Galaxy A5)时,它只发送一个字节。这有什么问题?
我在服务器端接收代码,我首先尝试读取前四个字节(C#):
var messageData = new StringBuilder();
var buffer = new byte[4];
var bytes = sslStream.Read(buffer, 0, 4);
var len = Encoding.ASCII.GetString(buffer);
var chars = new char[Encoding.ASCII.GetCharCount(buffer, 0, bytes)];
// Use Decoder class to convert from bytes to ACII
// in case a character spans two buffers.
Encoding.ASCII.GetChars(buffer, 0, bytes, chars, 0);
messageData.Append(chars);
答案 0 :(得分:0)
尝试使用标准的StandardCharsets.US_ASCII而不是你的硬编码字符串,这总是一个坏主意。
yourString.getBytes(StandardCharsets.US_ASCII);