服务器端:
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 是无连接的。服务器退出时不会向客户端发送任何通知。
如果您想要这种行为 - 并且如果您想要可靠的数据传输 - 请使用 TCP,而不是 UDP。