* PART 1 . n:m 채팅구현 및 Thread 사용법 공부
1. IP알고 직접 연결
2. TCP로 구현
==============
<Sever>
SeverSocket ss = new ServerSocket(int port);
Socket cs = ss.accept();
<Client>
Socket cs = new Socket(String ip, int port);
<< I/O >>
BufferedReader br = new BufferedReader( new InputStreamReader(cs.getInputStream()) );
br.readLine();
PrintWriter pw = new PrintWriter(cs.getOutputStream(), true);
pw.println("~~~~");
<<<< Thread 사용법 >>>>
1. class ServerThread extends Thread {
@Override
public void run(){
}
public void start() { }
}
2. Thread t = new Thread(new Runnable(){
@Override
public void run(){
}
public void start() { }
});
( 2번을 튜토리얼에서는 선호함(interface라서 다중상속이 가능하기 때문에) )
* PART 2 . 패키지 분류(디자인 패턴) 및 기타 구현
실제로 구현하면서 패키지를 조금 더 세밀하게 분류해야 될 필요성을 느낌. 그리고 그 분류의 패턴으로 MVC모델 채택을 제안.
Server - model
- view
- controller
- etc
Client - model (DB에서 정보를 가져오는 소스 등..)
- view (GUI)
- controller (가져온 정보를 view에 붙인다거나, 아니면 view의 버튼에 액션을 준다던가..)
- etc (기타)
Sever와 Client 둘다 MVC 형태로 패키지를 나누기로 제안함.
프로그램상에서 쓰이는 String들은 String_ko 라는 interface에 몰아서 정의하는게 나중에 유지보수하기 편할꺼같음
또한, 나중에 옵션을 구현해야 하므로 Option 이라는 class를 만들어서 설정할 수 있게 따로 빼자.
타이머와 같은 경우에는, 서버를 기준으로 하고 클라쪽에는 뻥카로 하나 만들자.
역할 분담
=============
유재범, 김동환 - 게임 룰, 게임 진행 구현
오영은, 이승현 - GUI 구현