超時後終止指令(netcat)的便攜式方法

超時後終止指令(netcat)的便攜式方法

我有一個使用netcat/nc作為監聽輸入的服務的解決方案,但該服務永遠不會向客戶端傳回任何輸入。有點像這樣:

server$ nc -l 12345

進而:

client$ echo message | nc server 12345

訣竅在於,因為伺服器永遠不會向客戶端發送任何內容(包括沒有 EOF),本質上是因為它不知道客戶端何時完成,所以客戶端netcat永遠不會終止。

一個簡單的解決方案是讓客戶端使用 選項-q <secs>netcat但並非所有實作(例如 FreeBSD 和 Mac OSX)都netcat包含該-q選項。

這裡的聰明人還有其他解決方法嗎?

相關內容