관리 메뉴

취미개발 블로그와 마음수양

자바 파일 전송 간단하게 해보기 본문

Language/java소스

자바 파일 전송 간단하게 해보기

아라한사 2014. 4. 19. 17:29

으음...



콘솔창으로 일단 이런 화면이 뜬다...



으음. 이게 클라이언트 단에서 나오는 화면이다...



서버화면

package 챕25네트웤;

import java.io.BufferedReader;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class FileServer {

	public static void main(String[] args) throws IOException{
		ServerSocket serverSocket = null;
		try{
			serverSocket = new ServerSocket(5555);
		}catch(IOException e){
			System.out.println("다음의 포트 번호에 연결할 수 없습니다 : 5555");
			System.exit(1);
		}
		System.out.println("서버 시작! ");
		Socket clientSocket = null;
		try{
			clientSocket = serverSocket.accept();
		}catch(IOException e){
			System.err.println("accept() 실패 ");
			System.exit(1);
		}
		
		PrintWriter out = new PrintWriter(clientSocket.getOutputStream(),true);
		BufferedReader in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
		
		String inputLine, outputLine;
		
		
		outputLine ="접속한 것을 환영한다 후후후\n 파일명을 선택해주세요~ ";
		out.println(outputLine);
		
		inputLine = in.readLine();
		System.out.println("클라이언트 요청 :"+ inputLine);
		
		BufferedReader fin = new BufferedReader(new FileReader(inputLine));
		int i=0;
		while((i=fin.read())!=-1){
			
			out.write(i);
			System.out.print((char)i );
		}
		out.flush();
		
		System.out.println("\n파일전송 완료~");
	}

}



클라이언트 화면

package 챕25네트웤;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class FileClient {

	public static void main(String[] args) throws IOException {
		Socket quizSocket = null;
		PrintWriter out = null;
		BufferedReader in = null, in2 = null;
		
		try{
			quizSocket = new Socket("localhost", 5555);
			out = new PrintWriter(quizSocket.getOutputStream(), true);
			in  = new BufferedReader(new InputStreamReader(quizSocket.getInputStream()));
			
		}catch (UnknownHostException e){
			System.err.println("localhost에 접근할 수 없습니다.");
			System.exit(1);
		}catch(IOException e){
			System.err.println("입출력오류");
			System.exit(1);
		}
		
		BufferedReader user = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new FileWriter("CopiedFile.txt"));
		String fromServer;
		String fromUser;
		
		System.out.println(in.readLine());
		System.out.println(in.readLine());
		
		
		fromUser = user.readLine();
		out.println(fromUser);
		
		int i=0;
		while((i=in.read())!=-1){
			bw.write(i);
			System.out.print((char)i);
			
		}
		bw.flush();
		System.out.println("파일 전송받기 완료~");
		
		
		out.close();
		in.close();
		quizSocket.close();
	}

}