私は、複数のクライアントからの接続を受け入れる必要がある非常に単純なTCP/IPサーバーの設計を任されています。C#で記述する必要があり、.NET4.5を使用しています。とはいえ、.NET4.5でのTCP/IPサーバー/クライアントのスケーラビリティに関する現在の「最先端」は何であるかはわかりません。
私はこの投稿を見ました:スケーラブルなTcp/Ipベースのサーバーを書く方法。ただし、これは.NET 2.0および3.5に関連しており、async/awaitパターンについては言及されていません。
私はサーバーを「古い方法」で書くことができます...しかし、「新しい方法」が何であるかを知りたいです。
- Socket、TcpClient、またはTcpListenerで新しいAsyncメソッドを使用して、C#でスケーラブルなサーバーを作成するための最良の方法は何ですか?
- 新しい非同期メソッドはI/O完了ポートを活用しますか?
- 独自のSocketリスナーをローリングする方が効率的ですか、それともTcpListener / TcpClientクラスはかなり良いですか?
編集:追加の質問。