私はmacOSとgnu netcatを使っています。 netcatを使ってメッセージをブロードキャストする方法を知りたいです。
netcat
4555で聞いています。
netcat -l -p 4555 192.168.0.101
しかし、放送メッセージを送信しようとすると
netcat 192.168.0.255 4555
しかし、私は間違いを犯します。
Error: Couldn't create connection (err=-5): Permission denied
次のエラーが発生します。
Error: Couldn't create connection (err=-5): Permission denied
これ次の投稿私はうまくいきますが、netcat-traditional
私はこれを行うためにGNU netcatを実行しています。ここではこれが重要です。
ベストアンサー1
ポイントを獲得しようとしています。
TCPはブロードキャストには適していません。
TCPを使用してブロードキャストIPアドレスに接続することはできません。インターネット猫UDPを使用するように指示されていない限り、デフォルトではTCPが使用され、これらの試みはエラーが発生しやすいです。
UDPブロードキャストにはフラグ設定が必要ですが、GNU netcatはそれを処理しません。
これはBSDソケットAPIとその拡張が通過することです
setsockopt(2)
。SO_BROADCAST
(ブロードキャストをサポートするプロトコルの場合)ブロードキャストIPv4アドレスにパケットを送信できる必要があります。それ以外の場合はエラーが発生します。これGNU netcatソースコードどこにも文字列を含めないでくださいSO_BROADCAST
。
したがって、GNU netcatではブロードキャストを送信することはできません。別のツールに切り替える必要があります。または他の変形インターネット猫(周囲に複数個あります)または使用socat
より多くの機能があります。これはおおよそsocat
(マルチキャストおよび)ブロードキャストで使用。 (明らかに)GNU netcatのトンネルモードのように両側にソケットがある場合を処理します。