2013-03-08 5 views
1

여러 대의 서버 (100)에 텔넷 세션을 열고 메시지를 기다려야하는 단일 클라이언트가있는 프로젝트에서 작업하고 있습니다. 메시지는 작으며 (< 80 바이트) 임의로 발생합니다.여러 대의 서버와 통신하는 단일 클라이언트

각 "서버"에 대한 스레드를 생성하여이 작업을 수행하는 것은 좋지 않은 형식이라고 읽었습니다. 나는 TCPClient 또는 Winsock 또는 Catalyst를 사용하여 여러 사이트를 처리하는 가장 좋은 방법에 대한 제안을 찾고 있습니까?

도움 주셔서 감사합니다. 게리 M

답변

1

는 Windows 플랫폼이기 때문에

많은 옵션이 있습니다. Winsock 함수를 선택하거나 WSAPoll 또는 WSAAsyncSelect 또는 완료 포트를 사용할 수 있습니다.

select/WSAPoll Posix와 거의 비슷하며 예제를 많이 사용하고 있으며이를 사용하는 데 필요한 몇 가지 준비된 라이브러리가 있습니다.

WSAAsyncSelect은 UI 스레드에 이벤트를 보냅니다 (이 경우 윈도우가 있어야합니다). 응용 프로그램에 윈도우가있는 경우 모든 활동이 윈도우 스레드에서 발생하고 라이브러리에서 이벤트 직렬화를 처리하므로 가장 간단한 옵션 일 수 있습니다.

또한 (당신이 더 많은 다음 64 개 연결을 가지고있는 것이 중요)를 살펴 : http://msdn.microsoft.com/en-us/library/windows/desktop/ms739169(v=vs.85).aspx

윈도우 completition 포트를 사용 : http://msdn.microsoft.com/en-us/magazine/cc302334.aspx http://msdn.microsoft.com/en-us/magazine/ms810436.aspx

+0

당신에게이 제안을 너무 많이 주셔서 감사합니다! 나는 그 (것)들을 통해 가고이 신청을 위해 잘 작동하는 것을 보이는 파악할 것이다! – user2146614

관련 문제