
サーバ側:
socat udp-l:2023,reuseaddr,fork exec:/bin/bash,pty,setsid,setpgid,stderr,ctty
クライアント側:
socat -,raw,echo=0 udp:localhost:2023
bash を終了すると、サーバー側は終了しますが、クライアントは終了しません。
[root@udp-server-v1-9cdc7f96f-pwdjq /]# exit
exit
^C[root@udp-server-v1-9cdc7f96f-pwdjq /]#
この後、任意のキーを押すと、socat は再びサーバーに接続します。ps -ef は、サーバー側が新しい bash をフォークし、新しい接続であることを示します。
答え1
UDP はコネクションレスです。サーバーが終了したときにクライアントに通知は送信されません。
この動作が必要な場合、そしてデータの確実な配信が必要な場合は、UDP ではなく TCP を使用してください。