我在Ubuntu上运行以下命令:
nc -l -p 5004 -v >> /home/anders/Dropbox/netcatFiles/test
这包括一个命令,使其监听5004端口。
我正在使用VLC将RTP流发送到5004端口。当我在Wireshark中观察回环接口时,我注意到带有消息“目标不可达”的ICMP数据包。
打开另一个VLC并告诉它在5004端口播放传入的数据,一切都可以正常工作,并且流可以播放。
为了让Netcat在5004端口监听,我应该怎么做?
我在Ubuntu上运行以下命令:
nc -l -p 5004 -v >> /home/anders/Dropbox/netcatFiles/test
这包括一个命令,使其监听5004端口。
我正在使用VLC将RTP流发送到5004端口。当我在Wireshark中观察回环接口时,我注意到带有消息“目标不可达”的ICMP数据包。
打开另一个VLC并告诉它在5004端口播放传入的数据,一切都可以正常工作,并且流可以播放。
为了让Netcat在5004端口监听,我应该怎么做?
我认为您需要添加“-u”参数以便使其监听UDP。
默认情况下,netcat在TCP模式下工作,但RTP协议基于UDP。
“传输控制协议(TCP)虽然已经被标准化用于RTP,但通常不在RTP应用中使用,因为TCP更注重可靠性而不是及时性。相反,大多数RTP实现都建立在用户数据报协议(UDP)之上。”
不要使用 -p (man nc (1))
-p source_port 指定nc应使用的源端口,受特权限制和可用性限制。在使用-l选项时使用此选项是错误的。
所以只需指定即可。
nc -l 5004 -v >> /home/anders/Dropbox/netcatFiles/test
0.0.19.140
的反向名称查找失败当我执行以下操作时:
nc -u -l -p 5004 -v >> /home/anders/Dropbox/netcatFiles/test
它可以正常工作。
我得到的状态是:
从127.0.0.1:32843
收到数据包 -> 127.0.0.1:5004
(本地) - Anders Branderudnc -l 5004 >> output.txt
进行监听测试,使用echo "tester" | nc 127.0.0.1 5004
进行发送测试。虽然发送测试需要指定主机,但测试结果良好。 - Harald Brinkhof