gpt4 book ai didi

c# - 将 byte[] 从 Android 应用程序传递到 C# 控制台应用程序?

转载 作者:太空宇宙 更新时间:2023-11-03 13:24:29 29 4
gpt4 key购买 nike

我正在构建一个 C#、WPF 和 Android 应用程序,主要用于培训,但无论哪种方式,我遇到的问题如下:

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


图像转字节数组函数:C#

 private static byte[] ImageToByteArraybyMemoryStream(Image image) {
MemoryStream ms = new MemoryStream();
image.Save(ms, System.Drawing.Imaging.ImageFormat.Png);
return ms.ToArray();
}

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

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");
}
}

转换为 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();

来自控制台应用程序的图像 enter image description here


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

enter image description here

list 许可

<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" />

字节码如果 C# 应用程序需要 ASCII 编码,是否存在任何问题?


任何帮助我指出正确方向的帮助都会很棒,如果需要添加更多代码,请问 :)

感谢社区..

最佳答案

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

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

网络层可能会多次发出某些数据的信号。如果没有一些协议(protocol),包括数据包开始数据包结束的标记,就不可能确定整个 PNG 何时到达,除非你使用一些全有或全无的协议(protocol)- 例如HTTP 获取

此外,确切的二进制协议(protocol)必须由双方同意,例如little or big endian

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

关于c# - 将 byte[] 从 Android 应用程序传递到 C# 控制台应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22939273/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com