さて、私は作業中のクライアント/サーバー ライブラリを持っています。サーバーは、クライアントからの複数の接続を受け入れることができます。Accept() を呼び出すたびに、成功した場合、クライアントのソケットへのハンドルがマップにプッシュされ、想定される一意の ID がキーとして使用されます。サーバーが後で特定のクライアントにメッセージを送信する場合、この ID を使用してクライアントを見つけます。
私の質問: すべてのクライアントの一意の ID は何ですか? 複数のクライアントが同じ IP アドレスから来る可能性があるため、IP アドレスは使用できません。そうでない場合、誰か他の良いデザインを提案できますか。ありがとう
図:
ClientSocket workerSock = Server.Accept();
Map.Add(workerSock);
Map
____________________
|Key | Value |
|------------------|
| ? |workerSock1| ------------------------ client application 1
|------------------|
| ? |workerSock2| ------------------------ client application 2
|------------------|
| ? |workerSock3| ------------------------ client application 3
--------------------
シナリオ: サーバーは特定のクライアントに送信する必要があるため、何らかの ID が必要です。