2017-11-01 13 views
1

서버 소켓을 사용하여 ImageView에 표시 할 이미지를 보내고 받으려고했지만 서버 소켓을 사용하여 이미지를 해독하려고하지만 작동하지 않습니다. 이 같은ServerSocket Service를 사용하여 이미지를주고받는 방법은 무엇입니까?

이미지 URL :

http://localhost:4545/sdcard0/emulated/test.img; 

서비스 :

public class ImageDecrptService extends Service { 

    private ServerSocket serverSocket; 
    private Socket socket; 

    void acceptRequestNDecryptFile() { 
     try { 
      try { 
       serverSocket = new ServerSocket(4545); 
      } catch (Exception e) { 
      } 

      while (true) { 
       Log.e("", "thread called true"); 
       socket = serverSocket.accept(); 
       //some thing code 
      } 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } finally { 
      try { 
       serverSocket.close(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } 
     } 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 

    Thread thread = new Thread(new Runnable() { 
     @Override 
     public void run() { 
      try { 
       acceptRequestNDecryptFile(); 
       Log.e("", "thread called "); 
      } catch (Exception e) { 
       e.printStackTrace(); 
      } 
     } 
    }); 

    @Override 
    public void onCreate() { 
     super.onCreate(); 
     try { 
      thread.start(); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

    @Override 
    public int onStartCommand(Intent intent, int flags, int startId) { 
     return START_STICKY; 
    } 

} 

어떻게 서버 소켓에 이미지 URL을 전달할 수 있습니다?

참고 : 비트 맵을 사용하여 이미지를 표시하고 싶지는 않습니다.

+0

설정을 잘 설명하십시오. 누가 이미지를 다운로드하려고합니까? 그리고 누가 그것을 제공하고 있습니까? – greenapps

+0

@ greenapps .. 이미지를 다운로드하지 않음, 로컬 저장소 (디렉토리)에 있음, 이미지를 해독하는 로컬 서비스에서 표시 및 ImageView에 표시 –

+0

???? 너는 충분하지 못했다. 해독? 서비스? 로컬 이미지 만 표시 하시겠습니까? 무슨 일이야? 당신은 당신의 셋업에 대해 훨씬 더 잘 말해야합니다. 우리는 지금 추측해야합니다. 그리고 당신의 클라이언트의 무언가를 말하기보다는 서버가 있다면. – greenapps

답변

0

웹 서버에 이미지의 http url이있는 경우 이미지를 가져 오기 위해 클라이언트가 필요합니다.

따라서 ServerSocket은 아무 소용이 없습니다.

또한 클라이언트 소켓은 올바른 방법이 아닙니다.

이미지를 다운로드하려면 http 구성 요소 또는 라이브러리를 사용해야합니다.

또는 DownloadManager를 호출하십시오.