複数のサーバー (100) への Telnet セッションを開き、メッセージを待機する必要がある単一のクライアントがあるプロジェクトに取り組んでいます。メッセージは小さく (< 80 バイト)、ランダムに発生します。
「サーバー」ごとにスレッドを作成してこれを行うのは悪い形だと読んだことがあります。TCPClient、Winsock、Catalyst、または ??? を使用して複数のサイトを処理する最善の方法についての提案を探しています。
助けてくれてありがとう !
ゲイリー・M
Windows プラットフォームなので、多くのオプションがあります。Winsock select関数、または WSAPoll、またはWSAAsyncSelect、または完了ポートを使用できます。
select/WSAPollは Posix の場合とほとんど同じように機能し、多くの例と、それらの使用方法に関するいくつかの準備済みライブラリがあります。
WSAAsyncSelectは UI スレッドにイベントを送信します (そのためのウィンドウが必要です)。アプリケーションにウィンドウがある場合、すべてのアクティビティがウィンドウ スレッドで発生し、ライブラリがイベントのシリアル化を処理するため、これが最も簡単なオプションです。
また、こちらもご覧ください (接続数が 64 を超えるため重要です): http://msdn.microsoft.com/en-us/library/windows/desktop/ms739169(v=vs.85).aspx
Windows 補完ポートの使用: http://msdn.microsoft.com/en-us/magazine/cc302334.aspx http://msdn.microsoft.com/en-us/magazine/ms810436.aspx