U E D R , A S I H C RSS

Project Zephyrus/Server

CVS 구조

~cpp 
ProjectZephyrusServer
    |
    +---- bin       : 실행 파일들의 저장고, 현재 빌드에서는 저장하지 않는다
    |
    +---- document  : 코딩중 기록되는 여타 문서들의 보관
    |                ex) DB query문, Packet정의 문
    +---- lib       : 컴파일에 필요한 라이브러리의 보관소
    |
    +---- src : 소스의 보관소 package별 분류
            |
            +---- command       : 명령과 관련한 패키지
            |
            +---- information   : DB와 같은 사용자 정보 관리 패키지
            |
            +---- network       : 네트웍 관련 패키지
            |
            +---- test          : Test 관련 패키지
    최상위 폴더의 화일 설명

    .classpath  : Eclipse 용 Java의 환경 설정
    .project    : Eclipse용 project 세팅 파일
    .cvsignore  : Eclipse에서 cvs에서 synch시에 무시할 파일

    java_win.bat    : Windows용 RunServer 실행 batch파일
    javac_win.bat   : Windows용 프로젝트 컴파일 batch파일

    java_zp         : ZeroPage Server 실행 bash script (zp에서만 돈다. bin이 classpath에 안들어가서 꽁수로 처리,port번호를 변경할수 없다.)
    javac_zp        : ZeroPage Server용 컴파일 bash script (어느 서버에서나 동작 할꺼 같다.)

    ProjectZephyrusServer.jcp : JCreator용 project파일
    ProjectZephyrusServer.jcw : JCreator용 workspace 파일

Eclipse, JCreator 에서 FAQ

  • Eclipse
    • Perspective를 CVS Repositary Explorering에서 ~cpp CheckOut을 한다음, 컴파일이 안된다면 해당 프로젝트의 JRE_LIB가 잘못 잡혀 있을 가능성이 크다. (Win98에서 JRE가 잘못 설치되어 있을때) 방법은 Eclipse에서 Tip중 설치 부분을 찾아 보라
  • JCreator
    • 먼저 해당 프로젝트의 lib세팅을 수행 한다. 그래도 안되면 다음
    • JCreator가 컴파일할 java파일의 선후 관계를 파악하지 못하여, 컴파일이 되지 못하는 경우가 있다. 이럴 경우 만들어둔 스크립트 javac_win.bat 을 수행하고, 이 스크립트가 안된다면, 열어서 javac의 절대 경로를 잡아주어서 실행하면 선후관계에 따른 컴파일이 이루어 진다. 이후 JCreator에서 컴파일 가능

Server UML

날짜 gif RRose2001 MS VM
05.23 gif Rose.
05.24 gif Rose .
05.27 gif Rose.
06.02 gif Rose MS VM
06.03 gif Rose MS VM
06.07 gif Rose MS VM

꿀단지

  • CVS가 귀찮으면 이걸로 실험해 보라 --상민
  • 현재 ZeroPage와 Windows 2k상에 한글 인코딩 문제로 후자로 해야 ZeroPage서버에서 한글로 안내 메세지가 나옴. 컴파일시 해결할수 있지만 귀찮아서 --;; --상민

"end"로 종료, VM 1.3에서 돌아감, 기본 port 22000, 단일 접속만 허용
실행자료Platform
java -jar ~cpp PZServerForWin.jar Port번호(Default 22000)jarWindows
java -jar ~cpp PZServerForZeroPage.jar Port번호(Default 22000) jarZeroPage

  • 모든 객체 정의 완성 상태. Rename과 코딩중에 필요한 부가적인 정보를 알아 내야 한다.
  • Client 팀처럼 측정을 하면서 한것이 아니라. 경험상으로의 진행률 만의 기록할수 있을것 같다. --상민

<기능 구현>
할일
내용관련클래스담당진행율
로그인
로그인 객체의 생성, ~cpp InfoManager에게 자료 요청~cpp LoginCmd류상민90%
로그인 객체에 정보 기록~cpp InfoManager이상규90%
로그 아웃
로그 아웃시 해당 소켓의 접속 종료 ~cpp LogOutCmd,SockManager 류상민90%
로그 아웃시 ~cpp LogoutCmd에 정보 기록 ~cpp InfoManager 이상규90%
1:1 메세지 보내고 받기
클라이언트에서 온 메세지를 echo시키는 작업~cpp MessageCmd류상민90%
친구 추가
친구 등록시에 주고 받을 메세지의 처리 ~cpp InsertBuddyCmd류상민90%
친구 등록시 DB에서 처리해야 될 상황 ~cpp InfoManager이상규90%
친구 삭제
친구 삭제시에 주고 받을 메세지의 처리~cpp DeleteBuddyCmd류상민90%
친구 삭제시에 DB에서 처리해야 될 부분~cpp InfoManager이상규90%
서버 정보 기능(Spec 미정의, 구현 강제성 없음)
서버에 현재 로그인 중인 리스트 보기
ID List보이기
~cpp SocketManager, InfoManager..
서버에 접속된 총인원(미 로그인 인원 모두)
IP, ID List 보이기
...
서버를 강제로 종료 ~cpp InfoManager, SocketManager,
~cpp UserSocket, PZServerSocket
류상민, 이상규90%
원하는 사용자 강제 종료~cpp SocketManager, InfoManager..
기타 기능
단일 User만 접근 가능하게 만듬~cpp CommandManager,LoginCmd,
~cpp LogoutCmd
류상민80%
<Maintanance>
package간 Information Hiding
서버의 구동시 자료구조 생성(DB Table생성)
~cpp PZUser, PZBuddyList Table생성~cpp InfoManager이상규?
~cpp PZUser, PZBuddyList Table삭제~cpp InfoManager이상규?
Dummy Data 생성~cpp InfoManager이상규?
<Bug Report>
많은 접속후, 혹은 명령 처리중에 DB Connection이 죽는 경우
~cpp DB ConnectionManager에서 connection을 받은후에 close했기 때문 ~cpp InfoManager이상규






Thread

  • 궁금증 있으면 물어 보시길 --상민
    • 지금 더미 클라이언트는 뭐 쓰시는중? 그리고 지금 Server 받아서 실행하려면 MySQL 설치해야 함? --석천
      • 현재 텔넷으로 테스트 하고 있음 방과후 보여 줄수 있음, MySQL은 기본적으로 ZeroPage로 세팅이 되어 있으며, 원하면 db.properties 화일을 수정해서 손쉽게 바꿀수 있다. Start Entry point는 RunServer --상민
      • 컴파일은 주어진 javac_win.bat 로 실행하면 전체가 컴파일이 됨, Javac의 실행 위치가 path에 잡혀 있지 않다면, 절대 경로로 수정 필요 --상민

혹시 새롬데이터맨이 아닌 이야기 로 테스트하는 사람은 주의 필요. 이야기에서는 포트번호를 32767 로 제한하는듯. (50000 이 넘어가니까 overflow 성격의 버그 발생. 테스트하는 사람은 포트 번호 30000 번 이하꺼로 바꿔서 하시길) --석천
  • 기본 세팅을 22000 으로 바꾸겠음 --상민
  • 90%는 완료라고 봐도 무방하다. 전에 100%라고 달았다가 석천이에게 버그 발견되어서 혼났다는.. --상민

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:24:06
Processing time 0.0280 sec