==========================================================================================

NETWORK

==========================================================================================

<NETWORK>



=return value 가져오기 : echo $?



=좀비 프로세스 : 아무일도 하지 않고 메모리 차지(자원낭비)


=CLIENT.C


- 수정 전 (while문 - 키입력 전 서버에서 오는 메시지 수신 불가능 함)


    read(iSock, cBuf, MSG_SIZE);
    printf(
"[SERVER] : [%s]\n",cBuf);

    while(1)
    {
        iRet 
= read(0, cBuf, MSG_SIZE);
        cBuf[iRet-
1]=0;
        write(iSock, cBuf, MSG_SIZE);
        read(iSock, cBuf, MSG_SIZE;
        printf(
"[SERVER] : [%s]\n",cBuf);

        
if(0== strncmp(MSG_END,cBuf,strlen(MSG_END)))
        {
            
break;
        }
    }



- 수정 후 (메세지 수신 & 화면 출력 / 키 입력 & 메시지 송신 분리)




-server






-client








-client fork()로 2개 생성








=SERVER

: 클라이언트 1 - 클라이언트 2 통신 되도록


1.두번째 클라이언트 접속 안됨 => 접속용 소켓 살려둠






2. iSock : 서버는 대화X => 랑데부 소켓

3. iCSock : 커뮤니케이션 소켓




==1차 : 클라이언트 여러개 받을 수 있도록 수정


<SERVER.C>

   while(1)
   {

       
iCSock = accept(iSock, (struct sockaddr *)&stAddr, &uiSockLen);
       
if(0 > iCSock)
       {
           perror(
"accept() error : ");
           close(iSock);
           
return 40;
       }

       
pid = fork();
       
//if(0 < pid)   // 부모: 랑데뷰
       //{
       //  continue;
       //}
       if(0 == pid)    // 자식: 커뮤니케이션
       {
           
break;
       }

  
 }




-server







-client 1







-client 2








=3개 실행 중








=client 1 종료







=2개 실행 중







=client 2 종료







=server 1개 실행중 (랑데뷰)







==2차 : 클라이언트들간 대화 가능하도록 수정

-IPC(Inter Process Communication) : 프로세스간 통신



'2015 스마트 콘트롤러 > 업무일지' 카테고리의 다른 글

20150730  (0) 2015.07.31
20150729  (0) 2015.07.30
20150727  (0) 2015.07.27
20150724  (0) 2015.07.26
20150723  (0) 2015.07.23
Posted by ahj333
,