파일전송 부분은 내가 내일 학교가서 할테니까..잉...
RandomAccessFile 클래스 보면, position()과 length를 통해서
임의의 부분의 데이터를 읽어올수 있다.
이거나 한번 해봐라..잉...
Thursday, August 9, 2007
Client
이름하는건 했는데요..근데 파일크기 비교하는 부분에서요 크기가 파일 저장되있는 글자수로 나와요
글구요.. 주석처리한부분이 어떤게 잘못된건지 모르겠어요 그부분안됨..ㅠㅠ
import java.net.*;
import java.io.*;
public class Client {
public static void main(String[] args) {
File cfl = null;
try{
Socket sock =new Socket("127.0.0.1",10001);
cfl = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\abcd.txt");
BufferedReader fin =new BufferedReader(new FileReader(cfl));
//BufferedReader bin =new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
System.out.println("[Client]:파일명[" + cfl.getName() + "]보내기" );
DataInputStream bin = new DataInputStream(sock.getInputStream());
int len =0;
char[] buf = new char[512];
bout.write((int) cfl.length());//파일크기를 제일 먼저 보냄..
while((len =fin.read(buf))!= -1){
bout.write(buf,0,len);
bout.flush();
}
System.out.println("[Client]:파일보내기완료 !!");
/*같은 파일인지 확인하는 부분..서버에서 파일크기같으면 1을 보내서 잘보냈다고 전달해줌 아님 2전달..
int c =0;
if(bin != null){
c = bin.readInt();
if(c == 1){
System.out.println("SUCCESS!!");}
else{
System.out.println("Fail");}
}
*/
System.out.println("[Client]: [파일size] : "+ cfl.length());
//위 파일크기가 글자수가 나옴..ㅠㅠ이상함..
fin.close();
bin.close();
bout.close();
sock.close();
}catch(Exception e){
System.out.println(e);
}
}
}
글구요.. 주석처리한부분이 어떤게 잘못된건지 모르겠어요 그부분안됨..ㅠㅠ
import java.net.*;
import java.io.*;
public class Client {
public static void main(String[] args) {
File cfl = null;
try{
Socket sock =new Socket("127.0.0.1",10001);
cfl = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\abcd.txt");
BufferedReader fin =new BufferedReader(new FileReader(cfl));
//BufferedReader bin =new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter bout = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream()));
System.out.println("[Client]:파일명[" + cfl.getName() + "]보내기" );
DataInputStream bin = new DataInputStream(sock.getInputStream());
int len =0;
char[] buf = new char[512];
bout.write((int) cfl.length());//파일크기를 제일 먼저 보냄..
while((len =fin.read(buf))!= -1){
bout.write(buf,0,len);
bout.flush();
}
System.out.println("[Client]:파일보내기완료 !!");
/*같은 파일인지 확인하는 부분..서버에서 파일크기같으면 1을 보내서 잘보냈다고 전달해줌 아님 2전달..
int c =0;
if(bin != null){
c = bin.readInt();
if(c == 1){
System.out.println("SUCCESS!!");}
else{
System.out.println("Fail");}
}
*/
System.out.println("[Client]: [파일size] : "+ cfl.length());
//위 파일크기가 글자수가 나옴..ㅠㅠ이상함..
fin.close();
bin.close();
bout.close();
sock.close();
}catch(Exception e){
System.out.println(e);
}
}
}
Sever
import java.net.*;
import java.io.*;
public class Sever {
public static void main(String[] args){
File sfl = null;
try{
ServerSocket server =new ServerSocket(10001);
System.out.println("[Server]:접속을 기다립니다");
Socket sock =server.accept();
InetAddress inetaddr =sock.getInetAddress();
System.out.println("[IP]:"+inetaddr.getHostAddress()+" [PORT]:"+sock.getPort()+" 로부터 접속!!");
String fileName = inetaddr.getHostAddress()+"_"+ sock.getPort();
sfl = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\",fileName+".txt");
BufferedReader bin =new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter fout = new BufferedWriter(new FileWriter(sfl));
DataOutputStream bout = new DataOutputStream(sock.getOutputStream());
char[] buf =new char[512];
int len =0;
if(bin != null){
while((len =bin.read(buf))!= -1){
fout.write(buf,1,len);
fout.flush();
}
System.out.println("[Server]:"+sfl.getName()+" 파일받기완료 "+ "\n\t"+" 파일크기:"+(int)buf[0]);
//buf[0]에는 전송받은 파일크기,
/*같은 파일인지 확인하는 부분..같은 파일이면 1을 보냄..아님 2보냄
long fileLength = sfl.length()-1;
if((int)fileLength == (int)buf[0]){
bout.writeInt(1);
System.out.println("[Server]:SUCCESS!!");
bout.flush();
}
else{
bout.writeInt(2);
System.out.println("[Server]:FAIL!!");
bout.flush();
}*/
}
fout.close();
bout.close();
bin.close();
sock.close();
}catch(Exception e){
System.out.println(e);
}
}
}
import java.io.*;
public class Sever {
public static void main(String[] args){
File sfl = null;
try{
ServerSocket server =new ServerSocket(10001);
System.out.println("[Server]:접속을 기다립니다");
Socket sock =server.accept();
InetAddress inetaddr =sock.getInetAddress();
System.out.println("[IP]:"+inetaddr.getHostAddress()+" [PORT]:"+sock.getPort()+" 로부터 접속!!");
String fileName = inetaddr.getHostAddress()+"_"+ sock.getPort();
sfl = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\",fileName+".txt");
BufferedReader bin =new BufferedReader(new InputStreamReader(sock.getInputStream()));
BufferedWriter fout = new BufferedWriter(new FileWriter(sfl));
DataOutputStream bout = new DataOutputStream(sock.getOutputStream());
char[] buf =new char[512];
int len =0;
if(bin != null){
while((len =bin.read(buf))!= -1){
fout.write(buf,1,len);
fout.flush();
}
System.out.println("[Server]:"+sfl.getName()+" 파일받기완료 "+ "\n\t"+" 파일크기:"+(int)buf[0]);
//buf[0]에는 전송받은 파일크기,
/*같은 파일인지 확인하는 부분..같은 파일이면 1을 보냄..아님 2보냄
long fileLength = sfl.length()-1;
if((int)fileLength == (int)buf[0]){
bout.writeInt(1);
System.out.println("[Server]:SUCCESS!!");
bout.flush();
}
else{
bout.writeInt(2);
System.out.println("[Server]:FAIL!!");
bout.flush();
}*/
}
fout.close();
bout.close();
bin.close();
sock.close();
}catch(Exception e){
System.out.println(e);
}
}
}
Wednesday, August 8, 2007
ServerSocket
서버에 저장할 파일명 IP:PORT 로 하는거랑 파일제대로 전송된건지 하는거랑 쪼개서 보내는건
아직 못했어요..ㅠㅠ 곧 할게요..ㅋㅋㅋ이거하는대도 무지 힘들었음..ㅠ
import java.net.*;
import java.io.*;
public class SeverSocket {
public static void main(String[] args){
File fl = null; //읽어온 내용 저장할 파일(blank.txt에 저장할것임(아무내용도 없어야함))
try{
ServerSocket server =new ServerSocket(10001);
System.out.println("접속을 기다립니다");
Socket sock =server.accept();
InetAddress inetaddr =sock.getInetAddress();
System.out.println(inetaddr.getHostAddress()+"로부터 접속했습니다");
InputStream in =sock.getInputStream();
OutputStream out =sock.getOutputStream();
fl = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\blank.txt");
//파일이름은 클라이언트 IP:PORT 이므로 inetaddr.getHostAddress() + sock.getPort()+ ".txt"
BufferedInputStream bin = new BufferedInputStream(in);
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(fl));
int len =0;
if(bin != null){
while((len =bin.read()) != -1){
bout.write(len);
bout.flush();
}
System.out.println("[Server]:파일받기완료");
/*파일전송 성공시 or 실패시
if(){
out.write("success!!");
out.flush();
}
else{
out.write("fail!!");
out.flush();
}
*/
}
bout.close();
bin.close();
sock.close();
}catch(Exception e){
System.out.println(e);
}
}
}
아직 못했어요..ㅠㅠ 곧 할게요..ㅋㅋㅋ이거하는대도 무지 힘들었음..ㅠ
import java.net.*;
import java.io.*;
public class SeverSocket {
public static void main(String[] args){
File fl = null; //읽어온 내용 저장할 파일(blank.txt에 저장할것임(아무내용도 없어야함))
try{
ServerSocket server =new ServerSocket(10001);
System.out.println("접속을 기다립니다");
Socket sock =server.accept();
InetAddress inetaddr =sock.getInetAddress();
System.out.println(inetaddr.getHostAddress()+"로부터 접속했습니다");
InputStream in =sock.getInputStream();
OutputStream out =sock.getOutputStream();
fl = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\blank.txt");
//파일이름은 클라이언트 IP:PORT 이므로 inetaddr.getHostAddress() + sock.getPort()+ ".txt"
BufferedInputStream bin = new BufferedInputStream(in);
BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(fl));
int len =0;
if(bin != null){
while((len =bin.read()) != -1){
bout.write(len);
bout.flush();
}
System.out.println("[Server]:파일받기완료");
/*파일전송 성공시 or 실패시
if(){
out.write("success!!");
out.flush();
}
else{
out.write("fail!!");
out.flush();
}
*/
}
bout.close();
bin.close();
sock.close();
}catch(Exception e){
System.out.println(e);
}
}
}
ClientSocket
import java.net.*;
import java.io.*;
public class ClientSocket {
public static void main(String[] args) {
File fr = null;
try{
Socket sock =new Socket("127.0.0.1",10001);
fr = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\abcd.txt");
BufferedInputStream bin = new BufferedInputStream( new DataInputStream( new FileInputStream(fr)));
BufferedOutputStream bout = new BufferedOutputStream( new DataOutputStream( sock.getOutputStream() ));
System.out.println(" [Client]:파일명[ " + fr.getName() + " ]보내기 시작" );
int len =0;
while((len =bin.read()) != -1){
bout.write(len);
System.out.println("[Client]:" + (char)len );
bout.flush();
}
System.out.println("[Client]:보내기완료" );
bin.close();
bout.close();
sock.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
import java.io.*;
public class ClientSocket {
public static void main(String[] args) {
File fr = null;
try{
Socket sock =new Socket("127.0.0.1",10001);
fr = new File("C:\\Documents and Settings\\mina\\workspace\\Echo\\src\\abcd.txt");
BufferedInputStream bin = new BufferedInputStream( new DataInputStream( new FileInputStream(fr)));
BufferedOutputStream bout = new BufferedOutputStream( new DataOutputStream( sock.getOutputStream() ));
System.out.println(" [Client]:파일명[ " + fr.getName() + " ]보내기 시작" );
int len =0;
while((len =bin.read()) != -1){
bout.write(len);
System.out.println("[Client]:" + (char)len );
bout.flush();
}
System.out.println("[Client]:보내기완료" );
bin.close();
bout.close();
sock.close();
}
catch(Exception e){
System.out.println(e);
}
}
}
Tuesday, August 7, 2007
파일 전송 테스트
* 파일전송*
# 서버1 to 클라이언트 1
1. 서버 - 서버는 전송되는 파일을 받아서 임의의 디렉토리에 파일을 저장한다.
- 파일전송이 완료되면 "SUCCESS OR FAILURE"메세지를 보낸다.
- 파일 이름: 요청한 클라이언트의 IP:PORT번호로 저장(127.0.0.1:7000)
2. 클라이언트 - 파일 전송을 전송하고 전송여부에 대한 메세지를 받는다.
- 받은 메세지는 콘솔창에 출력한다.
#서버1 to 클라이언트 n
가능?????????????????????
# 서버1 to 클라이언트 1
1. 서버 - 서버는 전송되는 파일을 받아서 임의의 디렉토리에 파일을 저장한다.
- 파일전송이 완료되면 "SUCCESS OR FAILURE"메세지를 보낸다.
- 파일 이름: 요청한 클라이언트의 IP:PORT번호로 저장(127.0.0.1:7000)
2. 클라이언트 - 파일 전송을 전송하고 전송여부에 대한 메세지를 받는다.
- 받은 메세지는 콘솔창에 출력한다.
#서버1 to 클라이언트 n
가능?????????????????????
Sunday, August 5, 2007
MIDlet/추상&인터
*MIDlet 프로그램의 생명주기
-PAUSED : MIDlet이 초기화 되었거나 멈추고 있는 상태.
-ACTIVE : MIDlet이 실행되는 경우.
-DESTROYED : MIDlet이 사용하는 모든자원을 해제하는 단계.
MIDlet은 JAM과 서로 메시지를 주고받으면서 동작함. 휴대폰내의 JAM은 모든 MIDlet을 실행하고 중지키기고 없애는 역할을 하는 중요한 프로그램이다.
*JAM(java application manager)의 기능
-가져오기(retrieval) : 웹사이트에서 MIDlet을 다운로드하는 기능
-설치(installation) : 다운로드한 MIDlet을 휴대폰에 설치하는 기능
-실행(launching) : MIDlet을 실행하고 중지/없애는 기능
-버전 관리 : 설치된 MIDlet을 새로운 버전으로 업그레이드
-삭제(removal) : 설치된 프로그램을 삭제하는 기능
*추상 클래스와 인터페이스
추상클래스 : 추상메소드가 하나라도 있는 클래스
extends를 이용해서 추상 메소드를 구현함.
=>추상 클래스의 예
public abstract class Test{ //추상 클래스를 포함 클래스
public void sayHello(){ } //일반 메소드
public void sayHi(){ } //일반 메소드
public abstract void sayHowareyou(); //추상 메소드
} //추상 메소드인 경우 abstract 붙여야 함.
인터페이스 : 구현자체가 전혀 없는 순수한 추상 메소드로만 이루어져 있는 클래스
implements를 이용해서 추상 메소드를 구현함.
=>인터페이스의 예
public interface IRemoteControl{
void powerOn(); //추상 메소드
void powerOff(); //추상 메소드
void channelUp(); //추상 메소드
} //메소드에 굳이 abstract 붙일 필요 없다!!
-PAUSED : MIDlet이 초기화 되었거나 멈추고 있는 상태.
-ACTIVE : MIDlet이 실행되는 경우.
-DESTROYED : MIDlet이 사용하는 모든자원을 해제하는 단계.
MIDlet은 JAM과 서로 메시지를 주고받으면서 동작함. 휴대폰내의 JAM은 모든 MIDlet을 실행하고 중지키기고 없애는 역할을 하는 중요한 프로그램이다.
*JAM(java application manager)의 기능
-가져오기(retrieval) : 웹사이트에서 MIDlet을 다운로드하는 기능
-설치(installation) : 다운로드한 MIDlet을 휴대폰에 설치하는 기능
-실행(launching) : MIDlet을 실행하고 중지/없애는 기능
-버전 관리 : 설치된 MIDlet을 새로운 버전으로 업그레이드
-삭제(removal) : 설치된 프로그램을 삭제하는 기능
*추상 클래스와 인터페이스
추상클래스 : 추상메소드가 하나라도 있는 클래스
extends를 이용해서 추상 메소드를 구현함.
=>추상 클래스의 예
public abstract class Test{ //추상 클래스를 포함 클래스
public void sayHello(){ } //일반 메소드
public void sayHi(){ } //일반 메소드
public abstract void sayHowareyou(); //추상 메소드
} //추상 메소드인 경우 abstract 붙여야 함.
인터페이스 : 구현자체가 전혀 없는 순수한 추상 메소드로만 이루어져 있는 클래스
implements를 이용해서 추상 메소드를 구현함.
=>인터페이스의 예
public interface IRemoteControl{
void powerOn(); //추상 메소드
void powerOff(); //추상 메소드
void channelUp(); //추상 메소드
} //메소드에 굳이 abstract 붙일 필요 없다!!