본문 바로가기

Programing/Java

Java 통신 클라이언트 (Thread 여러명접속)

class FileReceiver extends Thread{
 Socket socket;
 DataInputStream dis;
 FileOutputStream fos;
 BufferedOutputStream bos;

 public FileReceiver(Socket socket){
  this.socket = socket;

 }
 
 public void run(){
  try {
    System.out.println("아싸 수신해");
    dis = new DataInputStream(socket.getInputStream());
    
    String fName = dis.readUTF();
    System.out.println("파일명"+fName+"을 전송 받았습니다.");
    
    File f = new File(fName+".jpg");
    fos = new FileOutputStream(f);
    bos = new BufferedOutputStream(fos);
    System.out.println(fName + "파일을 생성하였습니다.");
    
    int len;
    int size = 1024;
    byte[] data = new byte[size];
    while ((len = dis.read(data)) != -1){
    
     bos.write(data,0,len);    
    }
    
    bos.flush();
    bos.close();
    fos.close();
    dis.close();
    System.out.println("굳잡 파일 수신 완료");
    System.out.println("받은 파일의 사이즈:" + f.length());
    

   
    
  } catch(IOException e){
   e.printStackTrace();
  }finally {
   try  {
    if ( socket != null )  socket.close();
     } catch( IOException ex ) {}
  }       
 }
  
}

 

class WhileReceiver extends Thread{
 public void run(){
  
  ServerSocket serverSocket = null;
  Socket socket = null;
 
  
  try{
   serverSocket = new ServerSocket(9889);
   System.out.println("그래 시작해.");
   

   while(true){
   socket = serverSocket.accept();
   System.out.println("클라이언트랑 연결됬다!.");
   
   FileReceiver fr = new FileReceiver(socket);
   fr.start();

   }
   
  }catch(IOException e){
   e.printStackTrace();
  }
 }
 
}

 

 

'Programing > Java' 카테고리의 다른 글

Java 다중 Server Class  (0) 2014.05.28
getScaledInstance 메서드  (0) 2014.05.27
Java File 메서드  (0) 2014.05.26
(Java) ObjectOutputStream  (0) 2014.05.12
Bitmap to byte[] , byte[] to Bitmap  (0) 2014.05.09