私はTCP/IPプロジェクト(サーバー、および多くのクライアント)で作業しています。私はCで完全にコードを書いた。新しいクライアントがサーバーに接続するたびに、関数accept()
がその特定の接続の番号を返すことを確認した。上記のコードでTCP/IPのC接続の値を再割り当て
newton = accept(mysocket, (struct sockaddr *)&dest, &socksize)
newcon
異なるクライアントに対して異なります。クライアントが切断するたびに、切断されたクライアントに割り当てられた接続番号はなくなります。その番号は別のクライアントに割り当てられません。サーバーに多数のユーザーがいる場合、クライアントは大量の接続と切断を行います。その数は(0から大きな数に)増加し続けます。サーバーに何百万人ものクライアントが接続している場合、どうすれば対応できますか?接続番号を再利用できる方法はありますか?
「その番号は別のクライアントに全く割り当てられません。」間違っています。accept()システムコールは、新しい接続に使用可能な最も低いファイル記述子を返します。したがって、fd(数値)はリサイクルされます。 – joop