상세 컨텐츠

본문 제목

자바 상대방에서 파일 전송 하기 awt 안씀

관리X 과거글

by 까먹기전에 2015. 3. 19. 16:22

본문

반응형

======================파일 전송===========================


import java.io.BufferedOutputStream;

import java.io.DataOutputStream;

import java.io.FileInputStream;

import java.io.OutputStream;

import java.net.ServerSocket;

import java.net.Socket;


public class fileW {

      public static void main(String[] args) throws Exception {

         ServerSocket ss = new ServerSocket(7777);//포트번호 7777로 객체를 생성함

         Socket s = ss.accept(); // 누가 접속을 하면 이 라인이 넘어감

         

         DataOutputStream dos = new DataOutputStream(s.getOutputStream());

         //데이터 보내기

         FileInputStream fis = new FileInputStream(

               "D:/인사.hwp");

         System.out.println(fis.available()+"&");

         //파일읽어서 보내기

         byte[] buffer=new byte[8*1024];   //바이트 배열 생성

        // byte[] buffer2=new byte[fis.available()];

         

         System.out.println("전송시작");

         

        //buffer2=(fis.available()+"").getBytes();

       // System.out.println("버퍼2:"+buffer2);

         OutputStream os = s.getOutputStream();//소켓에 쓸 아웃풋스트림을가져옴

          BufferedOutputStream tt = new BufferedOutputStream(os);//보조스트림으로 속도향상

          tt.write(fis.available());// 입력한거를 바이트배열로 출력함

          tt.flush();//바이트가 안찼지만 강제로 보냄 , 만약 바이트가 꽉 차면 오토플러쉬로자동으로 날라감

        

         while(true){

            int len=fis.read(buffer, 0, 8*1024);

            if(len==-1){

               System.out.println("파일 전송 완료");

               break;

            }

            dos.write(buffer, 0, len);

            dos.flush();

            

         }

      }

   }


======================파일 받는거==========================

import java.io.*;

import java.net.*;

import java.util.*;


public class FileR {

   public static void main(String[] args)throws Exception {

      

      Socket s=new Socket("192.168.1.159",7777); 

      //소켓연결

      

      //InputStream is = s.getInputStream();

      //Scanner sc = new Scanner(is);

      //String str = sc.nextLine();

      //System.out.println("온거"+str);

      //String[] k = str.split("/");

      //System.out.println("받을데이터크기 :"+k[0]);

      //System.out.println("받을데이터형식 :"+k[1]);

      

      

      DataInputStream dis=new DataInputStream(s.getInputStream());

      //나한테 보내는 데이터를 일음     

      FileOutputStream fos=new FileOutputStream("파일전송.hwp");

      //전송받은 파일을 내 컴퓨터에 출력(저장)한다

      byte[] buffer=new byte[8*1024]; //바이트배열생성

     try{ 

      while(true){

     

         int len=dis.read(buffer, 0, 8*1024);

         //buffer에 0번째부터 8x1024만큼 읽는다.

         if(len==-1){//만약에 읽을께 없으면 -1을 출력하고

             System.out.println("다운성공");

        break;//브레이크

         } 

         fos.write(buffer, 0, len); // 8키로바이트 용량만큼의 길이만큼 쓴다. 이걸 반복함         

      }  

     }

     catch(Exception e){}

   }

}

관련글 더보기