答え1
ソケットを開くとソケット、これはsocket:[5474494]
出力()にファイル記述子3としてリストされていることがわかります。他の3つのファイル記述子は標準入力、出力、およびエラー記述子であり、すべてのプロセスに対してデフォルトで開きます。あなたの場合、これはプログラムが実行されている端末を指すので、ファイル記述子に書き込むと「surni」と表示されます。
ソケットに書き込むには、適切なメカニズムを使用する必要があります(たとえば、netcat
他の方向)。
echo Hello | nc localhost 9999
またはBashを使用している場合:
echo Hello > /dev/tcp/localhost/9999
ただし、別のポートを使用してポート9999に接続を確立したように見えるため、netcat
これは実際にはお客様の場合には適用されません。確立された接続を使用する必要があります...
nc
他のプロセスに入力ソケットを提供する長期実行手段を期待する場合は、設定する必要があります。例えばFIFOの使用:
mkfifo socket-input
nc localhost 9999 < socket-input
echo Hello > socket-input