安卓套接字编程?

7

我需要关于Android Socket编程的一些帮助。我已经使用Java Socket编程创建了一个服务器-客户端原型。在服务器客户端场景中,我正在发送1-10之间的命令,服务器根据从客户端接收到的命令执行一些任务。例如,当服务器接收到命令时,它将向客户端发送一个BufferedImage。它(Java原型)运行良好。在这种情况下,服务器和客户端都是Java桌面应用程序,现在我想将Android作为客户端。有人能帮忙或建议我好的Android Socket编程资源吗?

请注意,Android不支持BufferedImage类。

2个回答

8

迁移您的应用程序没有问题。Android 运行在 Java 平台上,与桌面版非常相似。您只需要将 BufferedImage 迁移到简单的字节数组,并在服务器端使用 ImageIO


ByteArrayOutputStream baos = new ByteArrayOutputStream(); ImageIO.write(bImage, "png", baos); byte[] data = baos.toByteArray(); server.getOutputStream().write(data); 字节输出流 baos = 新的 ByteArrayOutputStream(); ImageIO.write( bImage, "png", baos ); byte[] 数据 = baos.toByteArray(); server.getOutputStream().write(数据); - Mudassar
客户端(Android 设备)如何接收 byte[]? - Mudassar
我假设client是您的Android设备上的一个socket。然后: ByteInputStream stream = new ByteInputStream(client.getInputStream()); byte [] img = stream.toByteArray(); - Vladimir Ivanov
Android中没有ByteInputStream类,你是指的ByteArrayInputStream吗? - Mudassar
你是什么意思?出错了吗?还是怎样?最好接受答案并展示代码,然后再提出另一个问题。 - Vladimir Ivanov
好的,没有错误,但是它还是不起作用,无论如何,谢谢你的帮助。 - Mudassar

0

@Op。请注意,在下载图像时,您可能还需要在Android设备上保持PARTIAL_WAKE_LOCK。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接