서버와 클라이언트 1,2 통신
1) 서버 vs 클라이언트1 (빨간색 라인)
- 클라이언트 1 의 커뮤니케이션 소켓1이 서버의 랑데뷰 소켓에 접속
- 서버에서 커뮤니케이션 소켓1 생성
- 서버 커뮤니케이션 소켓1과 클라이언트 커뮤니케이션 소켓1이 통신
2) 서버 vs 클라이언트2 (녹색 라인)
- 클라이언트2 의 커뮤니케이션 소켓2가 서버의 랑데뷰 소켓에 접속
- 서버에서 커뮤니케이션 소켓2 생성
- 서버 커뮤니케이션 소켓2와 클라이언트 커뮤니케이션 소켓2가 통신
3) 서버 커뮤니케이션 소켓1 vs 서버 커뮤니케이션 소켓2 (검은색 라인)
- 서버 커뮤니케이션 소켓1과 서버 커뮤니케이션 소켓2가 통신하면서
마치 클라이언트1과 클라이언트2가 직접 통신하는 것처럼 보임
실행 결과
< 서버 >
클라이언트 접속시 포트를 할당하며 현재 접속자 수를 카운팅하고
각 클라이언트에 번호를 매겨 관리
모든 채팅은 서버를 통해 클라이언트에 전달된다
< 클라이언트 1 >
< 클라이언트 2 >
소스 분석
LINE | 설 명 |
78 ~ 79 87 ~ 94 96 ~ 105 109 107 ~ 131 133 ~ 140 142 ~ 161 163 ~ 166 169 ~ 173 | 소켓의 최대번호 = 서버 소켓 + 1 접속자수 초기화 for 문 : 소켓의 최대 번호는 클라이언트 접속마다 숫자가 달라짐 select 함수가 에러나면 종료 커뮤니케이션 소켓 생성. 클라이언트가 접속하면 그정보를 tempSock에 저장 if 문 : MAXUSER : 동시 최대 접속자 수 제한 else if 문 : 서버의 키보드에서 입력받는 값을 모든 클라이언트에게 전송 else 문 : 한 클라이언트로부터 받은 데이터를 모든 클라이언트에게 전송 q 를 입력받으면 반복문 탈출 서버의 랑데뷰 소켓과 모든 커뮤니케이션 소켓 종료 |
[ TIP ]
vi 단락 들여쓰기
방법 1) 확장 명령 모드에서 ( esc + : 상태 )
:16,22 > ( 시작라인,끝라인 + 한칸 띄우고 + 탭이동방향 )
< 는 왼쪽으로 들여쓰기
방법 2) 명령 모드에서 ( esc 상태 )
> 6 ↓ ( 탭이동방향 + 라인수 + 라인방향 )
cf) d 3 ↓ 하면 커서에서 밑으로 3줄 잘라내기 하는것과 같은 원리
'코스웨어 > 13년 스마트컨트롤러' 카테고리의 다른 글
2013.6.20 [TCPEchoServer + Client + select()...] -손초롱 (0) | 2013.06.27 |
---|---|
checksum함수 (1) | 2013.06.27 |
리눅스에서 dos파일 열때 생기는 ^M 없애기 (5) | 2013.06.24 |
학교 네트워크 수업 자료 모음입니다 (1) | 2013.06.22 |
6월 18일 복습 (서버와 클라이언트의 1:1 양방향 통신) (2) | 2013.06.19 |
Double linked list 참조사이트 (3) | 2013.06.17 |
PC방 변태들... (11) | 2013.06.15 |
VMware workstation9 시리얼키입니다 (3) | 2013.06.12 |