在设备上通过网络发送字节

时间:2015-10-08 09:03:03

标签: java c# android networking

我正在尝试使用网络流(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);

1 个答案:

答案 0 :(得分:0)

尝试使用标准的StandardCharsets.US_ASCII而不是你的硬编码字符串,这总是一个坏主意。

yourString.getBytes(StandardCharsets.US_ASCII);