Linux組み込みボックス内の任意のポートをリッスンする必要があります。とにかく暗号化されていない接続用であり、カスタマイズされたLinux OSを実行しているLinuxボックスのため、開いているポートが少ないため、ポート6660を選択しました。 netcat(コマンドラインのnc)がそのための最も簡単ですぐに使えるソリューションであることがわかったので、その目的のためにCプログラムのプログラミングを開始する必要はありません。
私はなんとかコマンドとオプションを把握し、次のように別のPCから自分のPCでプレーンテキストを聞く最も簡単な方法を実装しました。
sven@sven:~$ nc 192.168.4.110 6660
sven@sven:~$ hello there!
anotherUser@userg:~$ nc -l -p 6660
anotherUser@userg:~$ hello there!
しかし、その場合、netcatツールはそのLinuxボックスのbusyboxパッケージに付属しています。そして、ポートをリッスンする方法の構文がどうなるかわかりません(たとえば6660)。私はいつも同じダイアログを受け取ります:
~ # nc -l -p 6660
BusyBox v1.17.1 (Debian 1:1.17.1-8) multi-call binary.
Usage: nc [IPADDR PORT]
Open a pipe to IP:PORT
また、リスニングを実装する他の多くの方法を試しましたが、それを実行できません。私は少なくともそれは私に何かオプションを与えると思いますか?また
nc -h
または
nc --help
「マイナス」オプションを与えないでください
しかし、Linux組み込みボックスから私のPCにテキストを送信することは機能します:
~ # nc 192.168.4.130 6660
fsdf
tere
^C
~ #
sven@sven:~$ nc -l -p 6660
fsdf
tere
Linux組み込みボックスには、同じローカルネットワーク内に完全に機能するネット接続があり、既存のeth0およびloリンクがあります
eth0 Link encap:Ethernet HWaddr D0:E3:47:00:03:5F
inet addr:192.168.4.179 Bcast:192.168.4.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:28046281 errors:0 dropped:0 overruns:0 frame:0
TX packets:428464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:2458890234 (2.2 GiB) TX bytes:83021395 (79.1 MiB)
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2282 errors:0 dropped:0 overruns:0 frame:0
TX packets:2282 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:444956 (434.5 KiB) TX bytes:444956 (434.5 KiB)
Töövõite!
正しい構文は
nc -l -p <port>
問題は、busyboxのバージョンがncリスニング機能なしでコンパイルされていることだと思います。確かに、ビルド時に構成オプションがあります、NC_SERVER
、その機能をオンにするには有効にする必要があります。
おそらく このバージョン から別のnc
を構築し、バイナリを組み込みホストにコピーできますか?クロスコンパイラ環境を構築する必要があるかもしれません。