void *listen_client() {
    while(1) {  
        int read_pipe_fd = open(read_pipe, O_RDONLY);
        const int kMaxReadLength = 8;
        char buf[kMaxReadLength];
        int id;
        char grade;
        read(read_pipe_fd, buf, kMaxReadLength);
        sscanf(buf, "%3d%c", &id, &grade);
        int write_pipe_fd = open(write_pipe, O_WRONLY);
        if(grade == '*') {  //lookup
           grade = lookup_grade(primary_server, id);
           sprintf(buf, "%c", grade);
           write(write_pipe_fd, buf, kMaxReadLength);
           
        } else {    //update
            printf("updaterequest %3d %c  target:%s \n", id, grade, primary_server);
            StudentSt* student = (StudentSt*) malloc(sizeof(StudentSt));
            student->next = NULL;
            student->student_id = id;
            student->grade = grade;
            UpdateGrade(primary_server, student);
            free(student);
        }
        close(read_pipe_fd);
        close(write_pipe_fd);
    }
}
	CGameDoc::CGameDoc(){
		srand((unsigned int)(time(NULL)));//시간을 Seed로 잡아 똑같은 난수 발생을 방지
		
		m_strName = _T("");
		m_bmCell = CSize(79, 81);
		m_nMode = PRACTICE;
		m_nGrade = TOP;
		m_nType = POCKETMON;

		UpdateGrade();
		InitializeGame();
	}