私は組み込みデバイスで実行されるアプリケーションを書いています。インストールは非常に簡単です。ちょうどbusyboxを使用すること以外にはあまりありません。このソフトウェアには、着信TCP / IP接続を受け入れるリスナースレッドが含まれています。私が使用しているポート番号がデバイス/etc/services
ファイルに存在しないため、ポートが利用可能であることはわかりますが、他のユーティリティで使用できないようにポートを何とか登録する必要があるかどうか疑問に思います。リスニングポートを登録するために明示的なタスクを直接実行する必要がありますか?それとも、ソケットシステムの機能は後でこれらすべてを処理しますか?それとも、私が使用したいポートが存在しないという事実は、/etc/services
私のアプリケーションのその側面についてまったく心配する必要はないということですか?
答え1
/etc/services
サービス名解決にのみ使用されます。ポートを名前で参照する必要がない限り、このファイルを更新する必要はありません。しかし、自分の精神のために、とにかく追加したいかもしれません。
ポート番号を選択するときは、次の点を考慮できます。
root
<1024ポートにのみバインドできます。これは、機密性の高いユーザープロセスによって機密性の高いシステムポート(SSH用のポート22など)が損傷しないようにするためです。- 32768以上のポートはシステムによって動的に割り当てられ、通常は発信接続に使用されます。
コードがポートに正常にバインドされると、root
プロセス以外のものは使用できません。