현재 자바로 서버 클라이언트 프로그램을 작성하여 파일 전송을 하도록 하였습니다 .

근데저는 서버에 폴더를 하나 만들어서 그 폴더안에있는 파일 전체를 클라이언트로 전송 하고 싶은데 ..

어떻게 해야하나요 ????

그리고 지금 제 소스는 서버에서 사진을 수동으로 선택해서 보내야 하는데

선택하는 과정없이 폴더안에 전체파일을 자동으로 클라이언트에게 보내고 싶습니다 .

 

밑에는 제 소스입니다 .

아 ! 여기서 awt 이것도 없애버리고 싶습니다 . 틀 말이죠 ..틀도 없애고 싶어요 .

-----------------------------------------------------------------------------------------------------------------

import java.awt.*;
import java.awt.event.*;
import java.net.*;
import java.io.*;

public class FileSendServer extends Frame implements ActionListener{
 FileDialog fd;
 Button b1,b2;
 TextField tf;
 String directory="", file="";

 public FileSendServer() throws Exception{
  b1=new Button("파일선택");
  b1.addActionListener(this);
  tf=new TextField(25);
  b2=new Button("파일전송");
  b2.addActionListener(this);
  add(b1,"North");
  add(tf,"Center");
  add(b2,"South");  
  setBounds(200,200,100,100);
  setVisible(true);
 }
 
 public void actionPerformed(ActionEvent ae){
  try{
   /* 파일선택 다이얼 로그가 뜨고 */
   if(ae.getActionCommand().equals("파일선택")){
    fd=new FileDialog(this,"",FileDialog.LOAD);
    fd.setVisible(true);
    tf.setText("");
    /* 선택했을 경우 디렉토리와 파일명이 저장됨 */
    directory=fd.getDirectory();
    file=fd.getFile();
    tf.setText(directory+file);
    /* "else" 파일전송버튼 클릭시 실행됨 */
   }
   else {  
    /* 3333포트로 서버소켓을 생성 */
    ServerSocket ss=new ServerSocket(3333);
    /* 클라이언트가 접속할때 까지 기다림 */
    /* 접속하게 되면 클라이언트와 데이터를 주고 받을수 있는 유일한 소켓을 열어줌 */
    Socket s=ss.accept();
    System.out.println("소켓 "+s+" 에 연결됨");

    /* 소켓으로부터 OutputStream 얻어서 파일명을 먼저 보냄 */
    BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(s.getOutputStream()));
    System.out.println("파일명 : "+file);
    bw.write(file+"\n"); bw.flush();
    
    /* 선택한 파일로 부터 스트림을 읽어들여서 얻어놓은 OutputStream에 연결 */
    DataInputStream dis=new DataInputStream(new FileInputStream(new File(tf.getText())));
    DataOutputStream dos=new DataOutputStream(s.getOutputStream());
    
    /* 바이트단위로 읽어서 스트림으로 쓰기 */
    int b=0;
    while( (b=dis.read()) != -1 ){
     dos.writeByte(b); dos.flush();
    }
    /* 자원정리 */
    dis.close(); dos.close(); s.close();
    dis=null; dos=null; s=null; ss=null;
    System.exit(1);
   }
  }catch(Exception e){
   System.out.println(e);
  }
 }

 public static void main(String args[]) throws Exception {
   new FileSendServer();
 }

 

 

 

 

}