web-dev-qa-db-ja.com

Xクライアントは、TCPポート6000+ <ディスプレイ番号>に接続する必要があることをどのようにして知っていますか?

SSHサーバーからX転送を要求すると、SSHサーバーは_$DISPLAY_変数に値_localhost:10.0_を設定します。さらに、それは_127.0.0.1_ポート_6010_(およびIPv6の場合は_::1_ポート_6010_)で待機し始めます。

_Netid  State      Recv-Q Send-Q                                     Local Address:Port                                                      Peer Address:Port                
LISTEN     0      128                                               127.0.0.1:6010                                                                    *:*                     users:(("sshd",pid=11405,fd=10))
_

Xクライアントは、TCPポート6010に接続する必要があることをどのように認識しますか?これは、デフォルトでTCPポート_6000_ + _<display number>_そして、この例では10のディスプレイ番号なので、これらはTCPポート_6010_?に接続しますか?

5
Martin

X11プロトコル (「6000」を検索)の一部であり、 Xorg(1) に記載されていますeg =:

Xorgはポート6000 +nでリッスンします。ここで、nはディスプレイ番号です。この接続タイプは、_-nolisten_オプションで無効にできます(詳細は Xserver(1) のマニュアルページを参照してください)。

16
Stephen Kitt

はい。

ブラウザーが(特に指定されていない限り)ポート80でWebサーバーに接続することを知っているように、Xクライアントはポート6000 +ディスプレイ番号でXサーバーと通信することを知っています(特に指定されていない限り)。

これらの期待は、標準(および、より広範にはドキュメント)が私たちに与えるものです—そうでなければ、コンピュータ間の相互作用は非常に面倒です。