3

スタックから見つけた多くのチュートリアルに基づいて、小さなデモ クライアント/サーバー TCP ソケット プロジェクトを作成しました。

現在、プロジェクトはブロックされており、各クライアント専用のスレッドを作成しています。これは理想とはほど遠いものですが、Async を使用する前に、基本的なソケットに慣れておきたいと思いました。

私が読んだチュートリアルのどれも、レポートなどのために現在の接続を追跡する方法を実際に説明していないので、私は自分でこれを調べました:

private Dictionary<IPAddress, DateTime> connectedClients = new Dictionary<IPAddress, DateTime>();

私の質問は、接続されたクライアントを追跡する最良の方法は何ですか?

フォローアップの質問: テストをどのように処理しますか? すべての接続が同じマシン (同じ IP、同じ MAC) からのものである場合、エントリが一意であることをどのように確認しますか? クライアントオブジェクトへの参照? GUID? 両方?

ありがとう。

4

2 に答える 2

1

クライアントとサーバーの両方の IP とポートの組み合わせは、TCP 接続では一意であり、UDP 接続では、クライアント ポートとサーバー ポートの組み合わせは一意です。

TCP 接続: (サーバーの IP アドレス、サーバーのポート、クライアントの IP アドレス、クライアントのポート)

UDP 接続: (サーバー ポート、クライアント ポート)

ユニークです。

于 2013-04-28T21:58:34.740 に答える