Android Drawable,从插座接收图像
我通过android应用程序中的套接字接收图像,我进行了调试,当我要将图像保存在Drawable d中时,程序会等待发生什么。 我认为它必须与clientSocket.getInputStream()有关;或者用插座。 我有一个多线程服务器在C++中,当我停止服务器,Android应用继续,我可以看到我以前发送的图像。但是,我认为这不是服务器的问题,因为服务器中的套接字发送数据并显示消息printf(“Bytes enviados%d\n”,bytesEnviados);它位于服务器代码的末尾 这里有代码:Android Drawable,从插座接收图像,android,sockets,tcp,drawable,inputstream,Android,Sockets,Tcp,Drawable,Inputstream,我通过android应用程序中的套接字接收图像,我进行了调试,当我要将图像保存在Drawable d中时,程序会等待发生什么。 我认为它必须与clientSocket.getInputStream()有关;或者用插座。 我有一个多线程服务器在C++中,当我停止服务器,Android应用继续,我可以看到我以前发送的图像。但是,我认为这不是服务器的问题,因为服务器中的套接字发送数据并显示消息printf(“Bytes enviados%d\n”,bytesEnviados);它位于服务器代码的末尾
public Drawable mandaMensajeVideo(String mensaje, String ip, int puerto ) throws IOException{
Socket clientSocket = new Socket(ip, puerto);
DataOutputStream outToServer = new DataOutputStream(clientSocket.getOutputStream());
outToServer.writeBytes(mensaje);
outToServer.flush();
InputStream inputStream = clientSocket.getInputStream();
Drawable d = Drawable.createFromStream(inputStream, null);
clientSocket.close();
outToServer.close();
return d;
}
谢谢 听起来好像从未到达
输入流的结尾,因为您从未正确关闭通信。您是否关闭服务器端的连接,或以任何其他方式发出传输结束的信号?我没有空闲(ssock);在服务器端,但我不执行ssock.Close();但是我发送了另一种信息,比如字符串,然后在客户端接收到它。听起来好像永远不会到达inputStream
的末尾,因为您从未正确地关闭通信。