==========================================================================================
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) |
-server
-client 1
-client 2
=3개 실행 중
=client 1 종료
=2개 실행 중
=client 2 종료
=server 1개 실행중 (랑데뷰)
==2차 : 클라이언트들간 대화 가능하도록 수정
-IPC(Inter Process Communication) : 프로세스간 통신