void CSrvSocket::OnReceive(int nErrorCode) {
        char p[500];
        char *tr=strtok(p,":");
        int n;
        while(tr!=NULL) {
                if(tr=="BADD") {
                        n=Receive(p,500,0);
                        strcpy(p,strtok(NULL,":"));
                        p[n]=0;
                        bll.BookLLAdd();
                }        
                else if(tr=="BDEL") {
                        n=Receive(p,500,0);
                        strcpy(p,strtok(NULL,":"));
                        p[n]=0;
                        bll.BookLLDel();
                }
                else if(tr=="MADD") {
                        n=Receive(p,500,0);
                        strcpy(p,strtok(NULL,":"));
                        p[n]=0;
                        mll.MemberLLAdd();
                }
        }
        AfxMessageBox(p);
        CSocket::OnReceive(nErrorCode);
}

음.. client에서... BTitle 이라는 변수를 전송해 옵니다(도서제목)
전송할때 앞에 "BADD:"+BTitle+":"( BADD:Gone with the wind: ) 이렇게 해줘서   (ex : cli_socket.Send("BADD:"+BTitle+":",50);  )
앞에 "BADD:" 는 사용되는 곳을 의미합니다.

그래서 server에서 받을 때 strtok함수를 사용하여 ":" 기호까지를 잘라내 읽어서
if문으로 어디에 사용될지 지정합니다.
BADD면 다음 토큰(":")까지가 도서제목인데 이 것이
도서추가 (BookLLAdd함수를 통해 리스트에 저장)되고
BDEL이면 도서삭제 (BookLLDel함수를 통해 리스트에서 삭제) 되게 하려고 합니다..
어떻게 해야 할까요;;
위에 코드를 짜놨는데.. 참 이상해보이는데... 수정을 못하겠네요..

OnReceive() 함수는 저렇게 만들어 놓으면 따로 호출할 필요없는건가요?
cli_socket.Send("BADD:"+BTitle+":",50);  
하는 것 처럼 받을 곳에서 일일히 OnReceive를 호출해야하나요?
아님 자동으로 위에 코드에서 알아서 받나요?

또, 서버가 클라이언트의 응답이 있을 경우나 없을 경우
모두 사용가능하게 하려면 어떻게 해야하나요?
Listen()을 쓰면 클라이언트의 응답이 있을 때까지 계속 대기중인데 말이죠;;;