我有一个小型客户端程序,它侦听IPv6组播组(例如ff12::blah:blah:blah%en0)中服务器发送的多播数据包。效果很好。
服务器还希望有时向我的客户端发送一个单播数据包(因为如果数据包只与一个客户端相关,那么就没有必要用它来困扰组播组的所有其他成员)。因此,我的服务器只对客户机的IP地址和客户端的IPv6组播套接字监听的端口执行sendto()。
如果我的客户端在MacOS/X下运行,这很好;单播数据包由接收多播数据包的同一个套接字接收。在Windows,OTOH下,客户端从不接收单播数据包(尽管它确实接收多播数据包而没有任何问题)。
我的问题是,是否期望多播侦听器IPv6 U
我们有一个应用程序,它使用UDP从服务器系统向运行在多个Windows XP PC上的客户端应用程序广播数据。这是在LAN上,通常是千兆位。这已经运行了几年了。
我们现在需要在每台四核PC上运行两个(或更多)客户端应用程序,每个应用程序实例都接收广播数据。我用来实现这一点的方法是为每个客户端PC分配多个IP地址。然后,每个客户端应用程序使用相同的端口号连接到服务器,但使用不同的IP。这在功能上是可行的,但由于某些原因,性能非常差。我的数据传输速率降低了大约10倍!
为了获得多个IP地址,我尝试使用两个NIC适配器,并在高级TCP/IP网络属性中将多个IP地址分配给单个NIC。这两种方法似乎都给
在这里,我可能对绑定一词有一个根本的误解,但我对及其构造函数的用法感到困惑。他们不做我理解他们应该做的事,任何能帮助我澄清我误解的人都应该这样做。
首先,我所要达到的目标。我尝试编写一个简短的程序,在MulticastSocket特定的网络适配器上创建一个绑定(即侦听),然后加入特定的多播组。我已经尝试了以下(客户端)代码的工作正常,我可以多播一个数据包到它,而不需要多播套接字超时。
public class Main {
public static final int DEFAULT_MULTICAST_PORT = 5555;
public static final String mult