2017-02-24 1 views
-1

그룹 채팅을위한 Java 코드가 있습니다. 서버에 연결된 모든 클라이언트에게 파일을 보내려고합니다. 채팅 메커니즘에 PrintWriter을 사용하는 경우 파일 전송을 위해 OutputStream과 같은 다른 것이 필요합니까? 파일 전송을위한 다른 방법이 있습니까? 둘 다 사용할 수 있습니까?그룹 채팅에 파일 전송을 추가하려면 어떻게해야합니까?

+0

추가 정보가 필요합니다. 서버 측에서 어떤 종류의 서비스를 실행하고 있습니까? 휴식 서비스 인 경우 Base64로 파일을 인코딩하고 서버로 보낼 수 있습니까? 프로그램에 소켓을 사용하고 있습니까? – Ali

+0

@Ali- 예. 내 프로그램에서 소켓을 사용하고 있습니다. 서버가 다중 스레드이며 각 클라이언트에 대한 스레드를 만듭니다. 나는 여기에서 OutputStream을 얻는다 : public ClientHandler (소켓 clientSocket, PrintWriter 사용자) { sock = clientSocket; InputStreamReader isReader = new InputStreamReader (sock.getInputStream()); 독자 = 새로운 BufferedReader (isReader); OutputStream os = sock.getOutputStream(); cOutputStreams.add (os); OutputStream을 사용하여 서버에서 .pdf 파일을 전송하는 경우에도 클라이언트 측에만 0KB 파일이 도착하므로 문제가 발생합니다. – NewToJava

+0

개인적으로 그룹 채팅 응용 프로그램에서 InputStream/OutputStream을 사용하지 않습니다. 전송할 파일, 유형 및 수신자를 지정하려면 무언가가 필요합니다. 메시지 송수신을 처리하는 휴식 서비스를 만들어야합니다. Reader/Writer 또는 InputStream/OutputStream을 사용해야하는지에 대해 걱정할 필요가 없습니다. – Ali

답변

0

Reader/Writer 클래스는 문자와 함께 사용됩니다. InputStream/OutputStream는 바이트와 함께 사용됩니다. 파일의 유형에 따라 Writer 또는 OutputStream을 사용해야합니다. 텍스트 파일을 받고 보내는 경우 Reader/Writer를 사용하십시오. 이미지, zip 파일, pdfs (바이너리 파일)를 수신 및 전송하는 경우 InputStream/OutputStream을 사용하십시오.

다른 유형의 Reader/Writer 및 InputStream/OutputStream에 대한 java.io 패키지의 클래스를 확인하여 필요에 적합한 것을 확인하십시오.

+0

- 둘 다 사용할 수 있다면 가능합니까? 다른 사람을 사용하려면 하나를 닫아야합니까? – NewToJava

관련 문제