TCP 기반 서버 (C 언어) 구현 방법을 검토 중입니다. 서버는 클라이언트와의 연결을 수락하고 클라이언트로부터 명령을 수신 한 다음 응답을 보냅니다. 아주 간단한 것들 - 그러나 명령의 처리는 시스템의 다른 스레드에 의해 수행되어야하며, 이는 믹스에 대해 약간의 동시성을 가져옵니다.소켓 보내기/받기 용 별도 스레드?
그래서 비 블로킹 소켓과 select()를 사용하거나 블로킹 소켓과 두 개의 별도의 comms 스레드 (하나는 송신 용, 하나는 수신 용)를 사용하여 모든 TCP 통신을 하나의 스레드에서 처리할지 여부를 결정하려고합니다. .
후자에 대한 우려는 소켓 동기화를 처리하는 것입니다. 송신 스레드에서 소켓을 닫으면 수신 스레드에서 어떤 일이 발생합니까 (또는 그 반대) .. 어떻게 처리하고 올바른 방식으로 정리할 것인가? .
조언을 주시면 감사하겠습니다.