티스토리 뷰

수신 스레드 : echo_recv()는 클라이언트로부터 메시지를 수신하여 메시지큐에 넣는 작업

송신 스레드 : echo_resp()는 메시지큐에서 메시지를 꺼내와서 클라이언트에 응답하는 작업

 

<소개>

앞서 파이프를 사용한 에코서버를 처리한것과 비슷하지만 멀티 프로세스가 아닌 멀티 스레드 방식을 사용하는데 차이가 있음.

송신 및 수신을 위해 스레드를 각각 5개씩 생성, 임의의 스레드가 랜덤하게 에코 서비스를 수행하게 처리. 

메시지큐 생성을 위한 키값과 포트번호를 입력받음

 

 

recvfrom()을 통해 받은 메시지를 메시지큐에 thread를 통해 송신( 메시지를 받아서 메시지큐에 넣으니 스레드는 recv해야함 => recv thread)

sendto()를 통해 전송할 메시지를 메시지큐에서 thtread를 통해 수신(메시지 큐에 저장된 메시지를 읽어와서 응답할 때 thread가 사용되기때문에 resp thread)

 

recv thread는 여러 thread를 통해 사용하기에 바뀔 수 있음.