为什么用Netcat监听端口不起作用

时间:2012-07-01 22:40:27

标签: networking netcat

我在Ubuntu上运行以下命令:

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

其中包含一个让它在5004收听的命令。

我正在使用VLC向端口5004发送RTP流。当我在Wireshark中观察loopback接口时,我注意到ICMP包带有“Destination unreachable”消息。

打开另一个VLC并告诉它在端口5004播放传入数据,一切正常,然后播放流。

为了让Netcat在5004端口收听,我该怎么办?

2 个答案:

答案 0 :(得分:12)

我认为您需要添加“-u”参数以使其在UDP上侦听。

默认情况下,netcat在TCP模式下工作,但RTP协议是基于UDP的。

  

“传输控制协议(TCP),虽然已标准化   RTP使用,[5]通常不用于RTP应用程序,因为TCP有利   可靠性超过及时性。而不是大多数RTP   实现基于用户数据报协议(UDP)“

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

答案 1 :(得分:7)

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

  

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

所以只需指定

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