서버쪽
public class FileReceiveServer extends Thread{
public FileReceiveServer(){
start();
}
public void run(){
try{
ServerSocket ss=new ServerSocket(4444);
Socket s=ss.accept();
InputStream is=s.getInputStream();
BufferedInputStream bis=new BufferedInputStream(is);
BufferedReader br=new BufferedReader(new InputStreamReader(is));
File f=new File("c:/recruit/");
FileOutputStream out=new FileOutputStream(f);
BufferedOutputStream bos=new BufferedOutputStream(out);
int i=1;
int b=0;
while((b=bis.read())!=-1){
bos.write((char)b);
}
bos.flush();
br.close(); bis.close(); is.close(); out.close(); s.close(); ss.close();
br=null;bis=null; is=null; out=null; s=null; ss=null;
}catch(Exception e){
System.out.println("FileSendServer Error "+e.getStackTrace());
}
}
public static void main(String args[]){
new FileReceiveServer();
}
클라이언트쪽
public FileSendSocket(String path){
this.path = path;
start();
}
public void run(){
System.out.println("하이");
try {
Socket s=new Socket("localhost",4444);
DataInputStream dis=new DataInputStream(new FileInputStream(new File(path)));
BufferedInputStream bi=new BufferedInputStream(dis);
DataOutputStream dos=new DataOutputStream(s.getOutputStream());
BufferedOutputStream bw=new BufferedOutputStream(dos);
int b=0;
int i=1;
while((b=bi.read())!= -1 ){
bw.write(b);
}
bw.flush();
bw.close();bi.close();dis.close(); dos.close(); s.close();
dis=null; dos=null; s=null;bi=null;bw=null;
System.out.println("끗");
} catch (Exception e) {
// TODO Auto-generated catch block
System.out.print("FileSendSocket Error ");
e.printStackTrace();
}
}
아~~~~~주 간단한 파일 업로드 프로그램입니다. 멀쩡하게 잘만 작동하다 갑지가 java.net.SocketException: Connection reset by peer: socket write error 가 뜨면서 bw.write(b); < 요 지점에서 멈추네요.
벌써 하루 왠종일 원인을 찾고 있는데 서버쪽이 문제라고 해서 소스도 몇 번 바꿔 보고 윈도우 방화벽 꺼보고 포트에 간섭할 수 있는 국산 보안프로그램 싸그리 꺼보기도 했는데도 해결이 안되고 있네요.
마지막으로 윈도우 방화벽까지 꺼봤는데도 안 되는데 이거 어떻게 해결 할 수 있을까요?