3. 서버는 20개의클라이언트가 연결된 것을 확인하고
모든 클라이언트에 문자 ‘$’를 보냄
Server
Client_2
Client_1
Client_20
Client_3
send ‘$’
10.
Case 1. 서버가클라이언트로 데이터를 보낼 때
Server
Thread 2 Client_2
Thread 1
Client_1
②store rdata
0 1 2 3 4 5 6 7
rdata
①Send data
③data 처리
③ read
rdata0 1 2 3 4 5 6 7
rdata ②store rdata
11.
서버는 모든 클라이언트accept 시 문자 ‘$’를 모든 클라이언트에게 보냄
Num_fd[i] 는 각각 client
와 연결된 Socket이 저장
12.
클라이언트 입장에서 보면
서버에게서받은 데이터를
rdata에 저장
처음 서버로부터 받은 데이터(File
번호, ’$’ 처리 후 모드 변경
13.
4. 각 클라이언트는1MB의 Text 데이터를 서버에 한 줄씩 송신함과 동시에
수신된 메시지를 각자 파일에 저장
(case 1, 2 동시에 사용)
Server
Client_2
Client_1
Client_20
Client_3
send & recv
http://www.joinc.co.kr/w/Site/Thread/Begi
nning/Mutex
14.
Case 1. 서버가클라이언트로 데이터를 보낼 때
Server
Thread 2 Client_2
Thread 1
Client_1
②store rdata
0 1 2 3 4 5 6 7
rdata
①Send data
③data 처리
③ read
rdata0 1 2 3 4 5 6 7
rdata ②store rdata
15.
Server 입장에서 보면
연결된소켓에서 받은 data를 `data’에
저장, 크기는 ret & count 에 저장
Non blocking Mode 이므로
Recv 를 못 받았을 때 Error 처리를
꼭 해줘야 함