私のソケットチュートリアルプログラムに私がコードに設定したポートの代わりに「x11-1」ポートがあるとnetstatに表示されるのはなぜですか?

私のソケットチュートリアルプログラムに私がコードに設定したポートの代わりに「x11-1」ポートがあるとnetstatに表示されるのはなぜですか?

ソケットプログラミングを学ぶためにソケットを設定するには、次の機能があります。

  29 int CreatePassiveSock(char *protocol, char *portstr, int qlen) {                         
  30   int s, port, type, saddrlen;                                                           
  31   char *endptr;                                                                          
  32   struct sockaddr_in saddr;                                                              
  33   port = (int) strtol(portstr, &endptr, 10);                                             
  34   if (*endptr) {                                                                         
  35     printf("\nPlease specify a positive integer for port\n");                            
  36     exit(1);                                                                             
  37   }                                                                                      
  38   saddrlen = sizeof(saddr);                                                              
  39   memset(&saddr, 0, saddrlen);                                                           
  40   saddr.sin_family = AF_INET;                                                            
  41   saddr.sin_addr.s_addr = INADDR_ANY;                                                    
  42   saddr.sin_port = htons(port);                                                          
  43   if (strcmp("tcp", protocol) == 0)                                                      
  44     type = SOCK_STREAM;                                                                  
  45   else if (strcmp("udp", protocol) == 0)                                                 
  46     type = SOCK_DGRAM;                                                                   
  47   else {                                                                                 
  48     printf("Unsupported protocol given");                                                
  49     exit(1);                                                                             
  50   }                                                                                      
  51   if ((s = socket(PF_INET, type, 0)) == -1){                                             
  52     perror("socket call failed");                                                        
  53     exit(1);                                                                             
  54   }                                                                                      
  55   if (bind(s, (struct sockaddr *)&saddr, saddrlen) == -1) {                              
  56     perror("Bind failed");                                                               
  57     exit(1);                                                                             
  58   }                                                                                      
  59   if (type == SOCK_STREAM) {                                                             
  60     if (listen(s, qlen) == -1) {                                                         
  61       perror("listen failed");                                                           
  62       exit(1);                                                                           
  63     }                                                                                    
  64   }                                                                                      
  65   return s;                                                                              
  66 }          

ポート番号として6001を使用して呼び出すと表示される行です。netstat -a | head

tcp        0      0 0.0.0.0:x11-1           0.0.0.0:*               LISTEN 

0.0.0.0:x11-1 と表示されるのはなぜですか? 0.0.0.0:6001を取得する必要はありませんか?

重要な場合は、PopOSを実行しているノートブックでこれを行います。

ベストアンサー1

TCP ポート 6001 が識別されるため、x11-1次のラベルを使用して表示されます。見つかった IP アドレスに対応するホスト名を検索する方法と同様に、見つかった/etc/servicesポートnetstat番号に対応するサービス名を検索します。バラよりman 5 services説明/etc/servicesとアクセスに使用される機能については、XクライアントはTCPポート6000+ <表示番号>に接続する必要があることをどうやって知ることができますか?6000+ の範囲のポート番号マッピングのガイドラインです。

/etc/servicesシステムにどのサービスが知られているかを確認できます。公式レジストリはIANAによって管理されます。、あなたは見つけることができますX11の職業もあります

netstatポート番号を強制的に表示できます-n

おすすめ記事