2013年6月26日 星期三

[Linux] 透過 busybox nc 提供簡易 socket server/client 測試方式

最近在整合嵌入式的環境,碰到 socket server/client 的模式,正在想有沒合適的測試方式,就發現了 busbox nc 的用法!在嵌入式環境中真的是超方便的。

$ busybox nc
BusyBox v1.18.5 (Ubuntu 1:1.18.5-1ubuntu4.1) multi-call binary.

Usage: nc [-iN] [-wN] [-l] [-p PORT] [-f FILE|IPADDR PORT] [-e PROG]

Open a pipe to IP:PORT or FILE

Options:
-e PROG Run PROG after connect
-l Listen mode, for inbound connects
(use -l twice with -e for persistent server)
-p PORT Local port
-w SEC Timeout for connect
-i SEC Delay interval for lines sent
-f FILE Use file (ala /dev/ttyS0) instead of network

簡言之,若是整合的程式是一隻 socket server,要走 socket 跟他溝通,這時就可以用 nc 指令測試,假設 server 跑在 port 55688,且 server 是 read 一段話後,去判斷那段話來做事,例如 play boy 好了,那這時只需用 nc 就可以模擬 socket 連線,可省去寫一段小程式來測驗:

$ echo "play boy" | busybox nc server_ip server_port

除了上述 client mode 外,其實 nc 也能當 server:

$ busybox nc -l -p server_port

能夠有這樣的測試方式真是太幸福了 XD

沒有留言:

張貼留言