将字节[]从Android应用程序传递到C#控制台应用程序?

将字节[]从Android应用程序传递到C#控制台应用程序?,c#,android,wpf,sockets,byte,C#,Android,Wpf,Sockets,Byte,我正在构建一个C#、WPF和Android应用程序,主要用于培训,但不管怎样,我遇到的问题如下: 当我执行下面的代码WPF应用程序时,它会将所需文件从磁盘保存到桌面,但当我尝试从Android应用程序执行相同操作时,问题出现了,我确实连接到了控制台应用程序,但是byte[]显然不是相同的格式,可能我错过了什么,或者我出了什么问题 将图像转换为字节数组函数:C 将映像保存到磁盘方法C# 转换为byte[]并从Android应用程序发送 ByteArrayOutputStream strea

我正在构建一个C#、WPF和Android应用程序,主要用于培训,但不管怎样,我遇到的问题如下:

当我执行下面的代码WPF应用程序时,它会将所需文件从磁盘保存到桌面,但当我尝试从Android应用程序执行相同操作时,问题出现了,我确实连接到了控制台应用程序,但是
byte[]
显然不是相同的格式,可能我错过了什么,或者我出了什么问题


将图像转换为字节数组函数:C


将映像保存到磁盘方法C#


转换为
byte[]
并从Android应用程序发送

 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 bitmapImage.compress(Bitmap.CompressFormat.PNG, 70, stream);
 byteArray = stream.toByteArray();
 File fl = new File( imagePath);
 FileInputStream fi = new FileInputStream( fl );
 BufferedInputStream bi = new BufferedInputStream( fi );
 bi.read( byteArray, 0, byteArray.length );
 OutputStream outs = sock.getOutputStream();
 outs.write( byteArray, 0, byteArray.length );
 outs.flush();

来自控制台应用程序的图像


保存文件方法屏幕截图中的调试器

清单许可证



字节码 如果C#应用程序希望使用
ASCII
编码,是否存在任何问题


如果有人能帮我指出正确的方向,那就太好了,如果需要添加更多的代码,请询问:)


感谢社区。

从提供的代码中看不到C#如何打开套接字流的另一端以及如何读取

读取套接字流的常见问题是,您不知道何时接收到所有数据

网络层可能多次发出某些数据的信号。如果没有一些协议,包括数据包开始和数据包结束的含义标记,则无法确定整个PNG何时到达,除非您使用一些全有或全无协议,例如HTTP GET

此外,确切的二进制协议必须经双方同意,例如:


需要更多数据来提供更好的答案

您为什么不能将数据作为base64编码字符串发送?这样做有什么好处吗?很简单。可移植性谢谢,实际上我最终使用了http post,因为正如您所提到的,无法找到数据何时到达完成,或者如果需要等待更多,因为顶部的
base64
注释非常糟糕,您只能传递有限的数据。但是谢谢你的回复,这就是我最后做的:)\
public static void ByteArrayToImageFilebyMemoryStream(byte[] imageByte) {
   try {

        MemoryStream ms = new MemoryStream(imageByte);
        Image image = Image.FromStream(ms);
        image.Save(@"C:\Users\jycr753\Desktop\imageTest1.png");
   }
}
 ByteArrayOutputStream stream = new ByteArrayOutputStream();
 bitmapImage.compress(Bitmap.CompressFormat.PNG, 70, stream);
 byteArray = stream.toByteArray();
 File fl = new File( imagePath);
 FileInputStream fi = new FileInputStream( fl );
 BufferedInputStream bi = new BufferedInputStream( fi );
 bi.read( byteArray, 0, byteArray.length );
 OutputStream outs = sock.getOutputStream();
 outs.write( byteArray, 0, byteArray.length );
 outs.flush();
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />