TCP/IP에서 멀티 스레드에서 메시지 전달 방안에 대해서 질문드립니다.
안녕하세요?
TCP/IP에서 멀티 스레드에 대해서 질문이 있습니다.
질문 내용은 아래와 같습니다.
(세션1) (세션 2)
com1 com2 com3, com4,..., comN
S(M)==> (메시지전송) S(S) (메시지 전송) ===> C
tx(스레드(keepalived) tx(스레드 keepalived)
rx(스레드) rx(스레드)
(응답) <== S(S) (응답) <=== C
S(S) 와 C는 (세션 2) 지속적으로 세션이 연결된 구조이고.. S(M)에서는 특정 설정에 따라서 S(S)로 connection을 맺은 후...
메시지를 전송하며.. 해당 메시지는 (세션 2)를 통해서 전송이 됩니다. C측에서는 정상적인 메시지 처리 후 응답을 S(S)로 넘기게 되며...
그 메시지는 S(M)으로 명시적 메시지를 통해서 ack 처리를 수행하게 됩니다.
이 때 S(S) 와 C는 기존에 연결된 세션을 이용해서 tx를 수행하게 됩니다.
그 후 C에서는 메시지를 처리 후 정상적인 메시지에 대해서 정상 수신을 알리는 메시지를 S(S)로 전송하게 되며...
S(S)는 S(M)으로 응답 코드를 던지게 되며.. 그 후 S(M)과 S(S)는 연결을 끊습니다.
던져서 S(S) rx로 던지게 되며... S(M) 에 응답을 주려고 하는데....
일단.. S(S)에서 listen 상태로 대기하는 스레드로써 대기후 메시지를 수신해서... 세션 2를 lookup해서 C로 메시지를 전송하게 되며...
C는 처리 후 응답 코드를 S(S)로 전송을 하게 됩니다. 이때 S(M)으로 전송을 할 방안이 생각이 나질 않는데.. 혹시 좋은 방법이 없을까요?
한수 가르쳐 주십시오..^^
감사합니다.
댓글 달기