UDP - ポートでリッスンする必要があります。 TCP - サーバーに接続する必要があります。
私は努力netcat
しましたsocat
。
nc -v -u -l -p 3333 | nc -v 127.0.0.1 50000
socat -v UDP-LISTEN:3333,fork TCP:localhost:50000
どちらも機能します。メッセージを転送しますが、まだ終わっていません。 VLCはnetcat / socatを閉じた場合にのみコマンドを受け入れます。
接続を監視しましたが、sockettest
メッセージは次の行に順番に表示されました。
playpausestopexitadd
送信されたメッセージが次のように行を終了する必要があります。
play
stop
exit
add
たぶんパケットはまだ終わっていませんか?
特定の時間以降にパケット/終了ラインを送信するオプションがあるかどうかをnc
知りたいです。socat
\n
@roaimaが提案したように出力に追加すると、1行play\nstop\nplay\n
が表示されます。
答え1
"play\n"
私はあなたの問題がコマンドに改行文字を追加せずにUDPパケットを送信することだと思います(代わりに送信する必要があるため"play"
)。
とにかく、すべてのUDPパケットに対して新しいTCP接続を作成するには、次のudp-recvfrom
代わりにudp-listen
次のものを使用する必要がありますsocat
。
socat -u udp-recvfrom:3333,fork tcp:localhost:50000
その後、各UDPパケットはパケットの内容を送信するためにのみ使用されるTCP接続をトリガしてから閉じる必要があります。
以下を実行してテストします。
echo play | socat -u - udp-sendto:localhost:3333
(ペイロードが5バイトのUDPパケットを送信します"play\n"
。)