C++ (Win32)의 인스턴트 메신저 클라이언트에서 작업 중이며 다른 비동기 소켓 모델을 실험하고 있습니다. 지금까지 나는 메인 윈도우를 통해 알림을 수신하기 위해 WSAAsyncSelect을 사용 해왔다. 그러나, 나는 하나의 단일 소켓에 대해 WSAAsyncSelect를 호출 할 때 생성 된 초기 스레드 외에 추가로 5-6 스레드를 생성하는 Winsock에서 예상치 못한 결과를 경험했습니다.인스턴트 메신저 클라이언트에 가장 적합한 비동기 소켓 모델은 무엇입니까?
DLL을 통해 추가 프로토콜을 지원하기 위해 클라이언트를 개편 할 계획이 있습니다. 그리고 현재의 솔루션이 WSAAsyncSelect에 대한 내 경험에 기반하여 적합하지 않을까 봐 걱정됩니다. UI 코드 (메시지 루프에서).
약 10-20 + 연결 (프로토콜 및 프로토콜 디자인의 양에 따라 다름)을 처리 할 수 있어야하는 다중 프로토콜 IM 클라이언트에 적합한 비동기 소켓 모델에 대한 조언을 찾고 있습니다. 등), 과도한 양의 스레드를 사용하지 않는 동안 - 나는 성능에 관심이 많고 리소스 사용량을 줄입니다.
나는 IO Completion Ports를보고 있었지만, 내가 모은 것에서는 과잉으로 보인다. 적절한 소켓 솔루션이 무엇인지에 대한 의견을 많이 보내 주시면 감사하겠습니다.
미리 감사드립니다. :-)
# 제프리 리히터의 AysncEnumerator #wow !!! – divinci