2011-08-16 37 views
0

我試圖將套接字轉換成bash來產生動態響應。我試過這樣做nc -l 8088 -c``echo 'Request got, let's produce it',但-c選項現在已被棄用和不受支持。 然後我試圖使用的/ dev/TCP列出端口:exec 3<>/dev/tcp/127.0.0.1/8088; cat <&3,但我得到了一個錯誤:如何使用bash進行動態響應

connect: Connection denied* 
line 1: /dev/tcp/127.0.0.1/8088: Connection denied* 
line 2: 3: Wrong file descriptor* 
  • 從俄語翻譯字一個字

回答

1

這句法,根據Bash聯機幫助頁用於打開與現有套接字的連接。我不知道使用Bash創建套接字的選項。而你的NC命令使用的端口8000不是8088.

[更新] 好吧,但你也缺少-p開關來設置端口。之前沒有收到。

[email protected]:~$ nc -l -p8088 -c 'echo bleah' & 
[1] 4752 
[email protected]:~$ exec 3<>/dev/tcp/127.0.0.1/8088; cat <&3 
bleah 

對於使用管道的例子,看到這個頁面的底部,在代理的解釋:http://www.stearns.org/doc/nc-intro.v0.9.html,希望你能適應它爲您的需求。

爲什麼不使用inetd?在Bash中使用netcat的主要問題在於,我不能直接回復回復,因爲您不知道他們用於連接的端口。鑑於inetd爲你處理tcp/ip連接,讓你的shell腳本處理stdin和stdout。

+0

固定端口不匹配。這是一種功能的兩種變體:偵聽TCP端口並作出動態響應 –

+0

nc -l -p 8088,您遺漏了-p –

+0

-c選項對於我的netcat版本不可用。也許你知道如何用管道處理請求? –

相關問題