Linux

有什麼解決方案可以在 Linux 下製作互動式 TCP/UDP 伺服器嗎?

  • August 1, 2019

我需要一些像這樣的工具(稱為“TCP 測試工具”)用於 Linux。我不需要 GUI(即 GUI/CLI——這不是那麼重要),但我需要能夠製作一個可以在任何埠上偵聽、接收發送原始(即十六進制轉儲)數據的伺服器。

嘗試nc

man nc

nc — 任意 TCP 和 UDP 連接和監聽

socat是一種複雜的工具,可以將幾乎任何東西雙向連接到幾乎任何其他東西。特別是,您可以讓它在埠上偵聽連接,在連接時執行程序,將數據發送給它,並將輸出返回到套接字。例如:

socat TCP4-LISTEN:3344,reuseaddr,fork  EXEC:/tmp/runme,pty

將執行一個腳本,/tmp/runme例如:

#!/bin/bash
trap 'echo sigterm >&2;exit' TERM
echo "start" >&2
while read line
do  echo "got $line"
done

您可以在其中對數據做任何您喜歡的事情,例如在這裡返回帶有前綴“got”的數據。您可以使案例如telnet localhost 3344

echo hi | socat - TCP4:localhost:3344

如果你需要對 udp 做同樣的事情,你可以嘗試,例如:

socat UDP-RECVFROM:3344,fork  EXEC:/tmp/runme,pty

您只會收到一個數據包,但您仍然會收到任何回复。測試它,例如:

echo hi | socat - UDP-SENDTO:localhost:3344

如果你只想讓你的數據回顯,這個功能是內置xinetd的,你只需要啟用顯服務。見man xinetd.conf

如果要獲取頻寬統計資訊,請查看netperf工具。

引用自:https://unix.stackexchange.com/questions/236336