为什么在端口上侦听网猫不起作用



我在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的使用,[5]通常不用于RTP应用程序,因为TCP偏爱 可靠性高于及时性。取而代之的是大多数RTP 实现基于用户数据报协议 (UDP)"

http://en.wikipedia.org/wiki/Real-time_Transport_Protocol

不要使用 -p (man nc (1))

-p source_port 指定 nc 应使用的源端口,具体取决于权限限制和可用性。 在 con‐ 中使用此选项是错误的 与 -l 选项交汇。

所以只需指定

nc -l 5004 -v  >> /home/anders/Dropbox/netcatFiles/test

最新更新