草庐IT

multicastSocket

全部标签

java - MulticastSocket 失败后没有响应

尝试调用MulticastSocket上的joinGroup(addr)时出现SocketException。这只发生在我们设置为在机器启动时自动启动我们的应用程序的Windows机器上。似乎抛出异常是因为Windows尚未完全完成其启动过程,这是异常。java.net.SocketException:errorsettingoptionsatjava.net.PlainDatagramSocketImpl.join(NativeMethod)atjava.net.PlainDatagramSocketImpl.join(UnknownSource)atjava.net.Multica

java - 在 while 循环中添加项目时处理队列中的项目

我有一种方法可以在while循环中监听UDP数据包。我想在数据包到达时使用不同类中的另一种方法解析数据包,并在应用程序的另一部分对每个数据包进行许多不同的解析和分析。我认为让PacketParser方法在循环外处理Queue会更好。是否可以在数据包进入时将数据包添加到Queue中,然后让应用程序的另一部分在项目进入队列时监听项目并执行其他操作,因为原始while循环保持监听数据包并将它们添加到队列中?我想让另一个函数监视队列并处理数据包,Java中是否有一些东西可以监视Queue或Stack?有更好的方法吗?publicvoidread(StringmulticastIpAddress

java - Java MulticastSocket 是线程安全的吗?

我有两个线程。第一个在循环中发送带有MulticastSocket的数据报;第二个线程在循环中使用相同的MulticastSocket实例接收数据报。它似乎工作正常,但我仍然有疑问。这两个线程可以使用同一个MulticastSocket实例吗?MulticastSocket在发送/接收方法调用方面是线程安全的吗? 最佳答案 发送和接收DatagramSocket方法都在发送/接收数据报包上同步。换句话说,如果您使用相同的数据报包从两个不同的线程发送和接收,这两个方法将同步,因为它们将使用相同的对象作为同步token。看了Datagr

java - MulticastSocket 构造函数和绑定(bind)到端口或 SocketAddress

我可能对此处的绑定(bind)一词有根本的误解,但我对MulticastSocket的用法感到困惑。它是构造函数。他们不会做我理解他们应该做的事情,因此任何能帮助我消除误解的人都将不胜感激。首先是我想要达到的目标。我试图编写一个简短的程序来创建一个MulticastSocket将它绑定(bind)(即监听)在上。特定网络适配器然后加入特定的多播组。我已经尝试了以下(客户端)代码,它可以正常工作,我可以在没有多播套接字超时的情况下向它多播一个数据包。publicclassMain{publicstaticfinalintDEFAULT_MULTICAST_PORT=5555;public

Android 多播套接字停止监听

我在Android上有一项服务可以监听并响应通过多播接收到的数据包。这在大多数情况下都有效,但不幸的是,我发现它会时不时地停止接收数据包。线程在调用MulticastSocket.receive()时保持阻塞状态,但没有任何结果。我一直在慢慢地尝试找出触发此问题的原因,并且我发现关闭然后重新打开无线网络,或更改无线连接就可以解决这个问题。为了成功地继续监听我的数据包,我需要关闭MulticastSocket并重新创建它。但是,我还没有找到执行此操作的任何方法---我似乎没有收到任何关于发生了什么事情的通知:没有Intent,没有Java异常,什么都没有。如果套接字无效,我希望接收端抛出

java - Java-Android 上的 MulticastSocket 问题

我开始使用MulticastSocket编写代码,尝试制作一个简单的应用程序,使用客户端和服务器来发送消息。我为服务器准备的代码:importjava.io.IOException;importjava.net.DatagramPacket;importjava.net.InetAddress;importjava.net.MulticastSocket;importjava.net.SocketException;publicclassServidor{privatestaticMulticastSocketms;publicstaticvoidmain(String[]args)t

java - Windows Server 2008 上的 MulticastSocket 问题

我有一个java应用程序,它使用一些MulticastSocket实例来监听一些UDP多播提要。每个这样的套接字都由一个专用线程处理。线程读取每个数据报,解析其内容并将数据包的序列ID(长)和接收到数据报的时间戳写入日志(log4j)。当我尝试在WindowsServer2008R2上运行同一应用程序的两个实例时,具有2*6个内核并比较2个应用程序创建的2个日志,我注意到数据包的时间经常不一样。大多数数据包由2个应用程序同时接收(milis),但频繁同一个数据包的接收时间之间有大约1-7ms的差异由2个应用程序。我尝试在NIC中分配更多缓冲区,并且还使套接字读取缓冲区更大。此外,我尝试

linux - 从 Linux 上的特定网络接口(interface)接收多播

我正在尝试从CentOS5.5上的特定网络接口(interface)接收多播数据sd=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);memset(&addr,0,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(1234);addr.sin_addr.s_addr=htonl(INADDR_ANY);bind(sd,(sockaddr*)&addr,sizeof(sockaddr_in));setsockopt(sd,SOL_SOCKET,SO_BINDTODEVICE,"eth0",5)

linux - 从 Linux 上的特定网络接口(interface)接收多播

我正在尝试从CentOS5.5上的特定网络接口(interface)接收多播数据sd=socket(AF_INET,SOCK_DGRAM,IPPROTO_UDP);memset(&addr,0,sizeof(addr));addr.sin_family=AF_INET;addr.sin_port=htons(1234);addr.sin_addr.s_addr=htonl(INADDR_ANY);bind(sd,(sockaddr*)&addr,sizeof(sockaddr_in));setsockopt(sd,SOL_SOCKET,SO_BINDTODEVICE,"eth0",5)