當伺服器端退出時,socat 不會終止 udp 客戶端

當伺服器端退出時,socat 不會終止 udp 客戶端

伺服器端:

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。

相關內容