객체지향시스템 - 비트박스 프로젝트 분석
본 자료는 4페이지 의 미리보기를 제공합니다. 이미지를 클릭하여 주세요.
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
해당 자료는 4페이지 까지만 미리보기를 제공합니다.
4페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

객체지향시스템 - 비트박스 프로젝트 분석에 대한 보고서 자료입니다.

목차

1. 과제 목적
2. 과제 수행 및 분석
3)과제후기

본문내용

or();
for (int i = 0; i < 16; i++) {
Integer num = (Integer) it.next();
if (num != null) {
int numKey = num.intValue();
track.add(makeEvent(144, 9, numKey, 100, i));
track.add(makeEvent(128, 9, numKey, 100, i+1));
//NOTE ON과 NOTE OFF 이벤트를 생성하고 추가.
}
}
}
public MidiEvent makeEvent(int comd, int chan, int one, int two, int tick) {
//메시지를 만들기 위한 인자 네개
MidiEvent event = null;
try {
ShortMessage a = new ShortMessage();
a.setMessage(comd, chan, one, two);
event = new MidiEvent(a, tick);
//유틸리티 메소드이다. 메소드 매개변수를 써서 메시지와 이벤트를 만든다.
}catch(Exception e) { }
return event;
//이벤트를 리턴한다.
}
}
2)MusicServer
import java.io.*;
import java.net.*;
import java.util.*;
public class MusicServer {//클라이언트의 출력 스트림을 목록화
ArrayList clientOutputStreams;
// main() 메소드
public static void main (String[] args){ // 음악서버 객체를 생성 후, go() 메소드 호출
new MusicServer().go();
}
public class ClientHandler implements Runnable {
ObjectInputStream in; //객체단위로 입력 받는 스트림 생성
Socket clientSocket; //클라이언트의 소켓, 클라이언트 접속시 생성
public ClientHandler(Socket socket){ // 생성자, 클라이언트의 소켓을 매개변수로 받는다.
try{
clientSocket = socket; //매개변수로 받은 클라이언트의 소켓을 초기화.
in = new ObjectInputStream(clientSocket.getInputStream());
//클라이언트의 입력스트림을 얻는 부분
} catch(Exception ex){ex.printStackTrace();} //예외 발생시 처리
}
public void run() { // 스레드가 시작될 때 호출되는 콜-백 메소드
Object o1 = null; //첫번째 객체
Object o2 = null; //두번째 객체
try{ //수신된 첫 번째 객체를 읽고, 더 이상 읽을 객체가 없을 때 까지 무한루프.
while((o1 = in.readObject()) != null) {
o2 = in.readObject(); // 두번째 객체를 읽어 들인다.
//두 개의 객체를 읽어 들였다는 메시지를 출력 후 TellEveryone()메소드 호출.
System.out.println("read two objects");
tellEveryone(o1, o2);
}
} catch(Exception ex){ex.printStackTrace();} // 예외 발생시 처리한다.
}
}
public void go() {
clientOutputStreams = new ArrayList();
try{
ServerSocket serverSock = new ServerSocket(4242);
//서버 소켓을 생성하여 현재 시스템에 4242번 포틀 fdufdj 서버 서비스 준비.
while(true) { //다수의 클라이언트 접속을 위해 무한루프 설정.
Socket clientSocket = serverSock.accept();
//accept()메소드를 호출해 클라이언트가 접속될 때 까지 기다린다(블럭킹 상태)
클라이언트 접속시 접속한 클라이언트의 소켓을 반환하여 ClientSocket에 할당.
ObjectOutputStream out = new ObjectOutputStream (clientSocket.getOutputStream());
//객체단위로 클라이언트에 출력하는 스트림을 얻는다.
clientOutputStreams.add(out);
//클라이언트 출력 스트림 목록 추가.
Thread t = new Thread(new ClientHandler(clientSocket));
t.start();
//클라이언트와 데이터 통신을 위한 핸들러를 생성, 스레드를 실행.
System.out.println("got a connection");
//클라이언트가 접속 되었다는 메시지 출력
}
}catch(Exception ex){ // 예외 발생시 처리.
ex.printStackTrace();
}
}
public void tellEveryone(Object one, Object two){
//클라이언트에게 수신받은 객체를 현재 서버에 접속한 모든 클라이언트에 전송하는 메소드
Iterator it = clientOutputStreams.iterator();
//현재 서버에 접속된 클라이언트 출력 스트림을 이터레이터로 얻어 옴.
while(it.hasNext()) { // 출력 스트림이 있다면 루프를 계속 돈다.
try{
ObjectOutputStream out = (ObjectOutputStream) it.next();
//목록으로부터 출력 스트림을 얻어 온다.
out.writeObject(one);
out.writeObject(two);
//객체단위로 클라이언트에게 객체를 전송.
} catch(Exception ex){ex.printStackTrace();}
}
}
}
3)과제후기
비트박스 프로그램은 메시지 전송 및 각종 효과음과 그림을 전송하는 비트 박스로서 비트박스를 구현함에 있어서 많은 자료들과 정보들이 필요하였습니다. 비트박스 프로그램을 이해하고 분석하고 구현하면서 비트박스 프로그램과 객체지향의 개념에 좀 더 친해진 것 같습니다.

추천자료

  • 가격2,000
  • 페이지수12페이지
  • 등록일2013.03.19
  • 저작시기2010.11
  • 파일형식한글(hwp)
  • 자료번호#834992
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니