OKWAVEのAI「あい」が美容・健康の悩みに最適な回答をご提案!
-PR-
解決
済み

/etc/servicesの設定について

  • すぐに回答を!
  • 質問No.142523
  • 閲覧数1363
  • ありがとう数3
  • 気になる数0
  • 回答数1
  • コメント数0

お礼率 64% (32/50)

Solaris2.6を使用しています。

/etc/servicesにプロトコルとポート番号の
対応を記述しますが、あるアプリで使ってい
るポートは、このファイルに対応を記述して
ないのに、ポートが使用できてしまいます。
(inetdとかのものではありません)
そのアプリでは、1024以上のポート番号
を使用しているのですが、その辺も関係ある
のかわかりません。
なぜ記述していないものも、動けてしまうの
か教えてください。
通報する
  • 回答数1
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.1
レベル14

ベストアンサー率 50% (1122/2211)

> なぜ記述していないものも、動けてしまうのか教えてください。

まず、結論から言うと、ソケット通信を行う際に /etc/services にポート番号が
記述されていることは、必須ではありません。

プログラムの中に、直接ポート番号を記述することができます。

ただし、良く知られている番号以外は、ポート番号がかち合っちゃうことがある
ので、ソケット通信を行うアプリケーションが利用するポート番号を指定する
共通の仕組みとして /etc/services ファイルがあるのです。

ご存知のように、このファイルには、サービスを表す名前とポート番号が対で記述
してあります。

アプリケーションの方では、ポート番号ではなく、サービス名の方をプログラムの
中に記述をし、getservbyname() 関数などでポート番号を取得するように作ります。


このやり方でも、ポートに相当する「サービス名」をプログラム中に記述するわけ
ですから、そのサービス名が複数のアプリケーションでかち合ってしまう問題が
解消されているわけではありません。

ただの数値よりも、文字列の方が冗長度が高いので、かち合ってしまう問題が
起こり難いだろう、ということです。
お礼コメント
esi

お礼率 64% (32/50)

早速のご回答ありがとうございます。
/etc/servicesの使われ方がよくわかりました。
とてもわかりやすかったです。
ありがとうございました。
投稿日時 - 2001-09-29 03:04:13
-PR-
-PR-
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
このQ&Aにこう思った!同じようなことあった!感想や体験を書こう
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


いま みんなが気になるQ&A

関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ