Network programming pcap-在同一台计算机中传输和接收udp

Network programming pcap-在同一台计算机中传输和接收udp,network-programming,udp,pcap,winpcap,Network Programming,Udp,Pcap,Winpcap,为了解释我想要得到什么,这里有一个例子。 比如说,我们有一台带有一个网卡的PC。它有一个IP地址172.16.0.1。 使用VLC,我们启动一个到172.16.0.1:1234的udp流,然后启动VLC的另一个副本并连接到udp://@172.16.0.1:1234。现在我们将看到我们的视频流 如果运行嗅探器,您将在环回上看到从172.16.0.1:some_random_端口到172.16.0.1:1234的数据包。我们的NIC上没有流量 我想做的是在同一台计算机上传输和接收udp,就像VLC

为了解释我想要得到什么,这里有一个例子。 比如说,我们有一台带有一个网卡的PC。它有一个IP地址172.16.0.1。 使用VLC,我们启动一个到172.16.0.1:1234的udp流,然后启动VLC的另一个副本并连接到udp://@172.16.0.1:1234。现在我们将看到我们的视频流

如果运行嗅探器,您将在环回上看到从172.16.0.1:some_random_端口到172.16.0.1:1234的数据包。我们的NIC上没有流量

我想做的是在同一台计算机上传输和接收udp,就像VLC那样。但是主要的问题是pcap只能打开一个真正的设备,它不能与环回一起工作

有可能解决那个问题吗


另外,我使用的是Windows和WinPcap,与Linux版本不同,它可以发送数据包。

如果您只想发送和接收UDP数据包,我建议您只使用常规Winsock套接字,就像您在UN*X上使用常规套接字一样;使用WinPcap需要重新实现IP和UDP,并且不允许在Windows下发送到同一台计算机上的另一个套接字(或者至少在某些版本的UN*X上)

如果你想观察你正在发送的流量,不幸的是WinPcap不会有帮助,因为它依赖于从NDIS(其驱动程序插入NDIS)发送和接收的数据包,而从一台机器上的一个套接字发送到同一台机器上的另一个套接字的数据包不会发生这种情况


(请注意,顺便说一句,libpcap可以在Linux和*BSD、Mac OS X、Solaris和Digital/Tru64 UNIX上发送数据包,并且已经能够发送数据包好几年了;旧版本的libpcap不支持它,但过去几年的可用版本可以。然而,根据我的第一段,使用libpcap来发送数据包是没有意义的nd和接收这些操作系统上的常规UDP数据包,就像在Windows上使用WinPcap没有任何意义一样。)

不清楚,您试图实现什么。在同一台PC上使用WinPcap从VLC接收UDP流?