BBS > java

파일 받기 (안됨)

작성자 : 이창우 (x1wins) | 등록일 : 2011-06-07 | 목록
첨부 파일이 없습니다.
첨부 이미지가 없습니다.
import java.net.*;
import java.io.*;

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

/* 3333포트로 서버소켓을 생성 */
ServerSocket ss=new ServerSocket(3333);

  /* 클라이언트가 접속할때 까지 기다림 */
/* 접속하게 되면 클라이언트와 데이터를 주고 받을수 있는 유일한 소켓을 열어줌 */
Socket s=ss.accept();
System.out.println("소켓 "+s+" 에 연결됨");

  /* 소켓으로부터 스트림 얻어옴 */
InputStream is=s.getInputStream();
BufferedReader br=new BufferedReader(new InputStreamReader(is));

/* 저장할 파일의 객체 생성함 */
String fileName=br.readLine();
File f=new File("c:\\fileTransper\\temp\\",fileName);

/* 기록할 파일 연결함 */
FileOutputStream out=new FileOutputStream(f);
/* 보내온 파일의 끝까지 읽어서 파일로 씀 */
int i=0;
while((i=is.read())!=-1){
  out.write((char)i);
}

System.out.println("받은파일 C:/fileTransper/temp 경로에 저장됨!");

/* 자원정리 */
br.close(); is.close(); out.close(); s.close(); ss.close();
br=null; is=null; out=null; s=null; ss=null;
}
}
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.InetSocketAddress;
import java.net.ServerSocket;
import java.net.Socket;

public class FileServer {

public static void main(String[] args) {
int port = 10000;

try {
ServerSocket ss = new ServerSocket(port);
System.out.println("This server is listening... (Port: " + port
+ ")");
Socket socket = ss.accept();
InetSocketAddress isaClient = (InetSocketAddress) socket
.getRemoteSocketAddress();
String clientAddress = isaClient.getAddress().getHostAddress();
int clientPort = isaClient.getPort();

System.out.println("A client is connected. (" + clientAddress + ":"
+ clientPort + ")");

// String filename = "test2.txt";
String filename = "test2.avi";
FileOutputStream fos = new FileOutputStream(filename);

InputStream is = socket.getInputStream();

// int c;
// while ((c = is.read()) != -1) {
// // System.out.println("readByte: " + readByte);
//
// fos.write(c);
// }

byte[] buffer = new byte[Constants.DEFAULT_BUFFER_SIZE];
int readBytes;
while ((readBytes = is.read(buffer)) != -1) {
fos.write(buffer, 0, readBytes);
}

System.out.println("File transfer completed.");

is.close();
fos.close();

socket.close();
ss.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}



클라이언트

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Date;

public class FileClient {

public static void main(String[] args) {
String host = "localhost";
int port = 10000;

// String filename = "test.txt";
String filename = "test.avi";
File file = new File(filename);
long fileSize = file.length();
System.out.println("File size: " + (fileSize) + " Byte(s)");

try {
long startTime = System.currentTimeMillis();
System.out.println("Start time: " + new Date());

FileInputStream fis = new FileInputStream(file);

System.out.println("This client is connecting to " + host + ":"
+ port + "...");
Socket socket = new Socket(host, port);
System.out.println("This client is Connected.");

OutputStream os = socket.getOutputStream();

// int c;
// while ((c = fis.read()) != -1) {
// os.write(c);
// }

long totalReadBytes = 0;

byte[] buffer = new byte[Constants.DEFAULT_BUFFER_SIZE];
int readBytes;
while ((readBytes = fis.read(buffer)) > 0) {
os.write(buffer, 0, readBytes);

totalReadBytes += readBytes;
System.out.println("In progress: " + totalReadBytes + "/"
+ fileSize + " Byte(s) ("
+ (totalReadBytes * 100 / fileSize) + " %)");
}

System.out.println("File transfer completed.");

fis.close();

os.close();
socket.close();

long endTime = System.currentTimeMillis();
System.out.println("End time: " + new Date());

long diffTime = endTime - startTime;
long diffTimeInSeconds = diffTime / 1000;
System.out.println("Elapsed time: " + diffTimeInSeconds
+ " second(s)");

System.out.println("Average transfer speed: " + (fileSize / 1000)
/ diffTimeInSeconds + " KB/s");
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
로그인 하셔야 댓글을 사용하실수 있습니다.
댓글쓰기를 누르면 로그인 페이지로 이동 후 돌아옵니다.
총 댓글 겟수 0
번호 제목 등록일 작성자 조회수
671 struts2 intercept (0) 2014-12-29 이창우 1307
670 Reflection (0) 2014-07-07 이창우 1687
665 Timestamp <-> Date (0) 2014-04-02 이창우 1928
664 변환 date ->java.sql.date (0) 2014-03-24 이창우 1815
663 Unparseable date: "" (0) 2014-03-24 이창우 2712
659 Java Primitive Data Types (0) 2014-02-14 이창우 2189
568 abstract interface 차이점 (0) 2012-09-24 이창우 1245
418 Triple DES & DES JAVA ,C (0) 2011-12-26 이창우 2640
403 HttpClient (0) 2011-12-10 이창우 2472
220 콘솔에서 war 만들기 (0) 2011-07-13 이창우 2995
210 servlet 현재 주소 알아오기 (0) 2011-07-09 이창우 2161
188 A Java Runtime (0) 2011-06-27 이창우 2094
173 file 복사 (0) 2011-06-07 이창우 1944
172 파일 받기 (수정) (0) 2011-06-07 이창우 2194
-> 파일 받기 (안됨) (0) 2011-06-07 이창우 1726
169 소켓으로 파일 받기(안됨) (0) 2011-06-07 이창우 1941
162 RCP Example (0) 2011-06-03 이창우 1778
161 rcp 설명 사이트 (1) 2011-06-03 이창우 2019
160 Thread Chatting 프로토 타입 2 (1) 2011-06-02 이창우 1642
158 object heap (0) 2011-06-01 이창우 1861
< 1 2 >
글쓰기 검색