草庐IT

udp推流

全部标签

Java UDP多播,判断哪个组发包

我正在开发一个应用程序,其中有一个特定的线程(MulticastListenerThread),它有一个MulticastSocket并且正在监听发送到套接字正在监听的多播组的UDP(数据报)数据包。这行得通。我可以加入多播组,向该组发送消息并通过MulticastSocket接收消息。但是,我想从接收者的角度确定他是从哪个多播组接收到数据包的。下面的代码给出了数据包发起者的地址,而不是多播组:DatagramPacketpacket=newDatagramPacket(buf,buf.length);mlcSenderSocket.receive(packet);Stringsrc_

java - Java 中可靠的 UDP 协议(protocol)实现——为什么会这样?

我目前正在使用ReliableUDP协议(protocol)的Java实现,发现here.该项目完全没有教程,所以我发现很难发现问题。我已经设置了客户端和服务器。服务器在localhost:1234上运行,客户端在localhost:1235上运行。服务器首先建立,并循环监听连接-try{ReliableSocketclientSocket=server.socket.accept();InetSocketAddressclientAddress=(InetSocketAddress)clientSocket.getRemoteSocketAddress();Logger.getLog

java - 实现一个持续向邻居广播的简单 UDP 网络

我有3个节点A、B和C,它们具有各自的端口号。我正在尝试编写一个接受3个参数的java程序:它的节点名称和它的2个相邻节点的端口并向它们广播一个字符串"HelloI'mA"(所以A会广播给B和C)。它将每3秒执行一次。该程序将在3个不同的实例中运行。收到字符串后,它将打印从“Receivedstring”接收到的节点(端口B的示例)。我很难实现这个,不过我听说过使用UDP的叫做multicasting的东西。这是我到目前为止的工作,我做错了什么?classUDP{publicstaticvoidmain(String[]args)throwsException{StringnodeNa

Wireshark抓包:详解udp协议

通过wireshark这个抓包工具抓取udp协议的报文进行详细的分析。dns默认是基于udp协议的。访问一个域名的过程中,其实就是会做一个域名解析。域名解析用到的就是dns协议(应用层协议)。下面就触发dns的流量,抓取报文看下udp协议的实现:ping一个域名,解析成ip地址,这个过程就会调用dns协议。下面就是抓包抓到的dns协议:首先发了个这样的域名请求,然后网关承担域名解析的作用,回应一个这个域名对应的ip地址是什么。1.双击打开第一个报文:dns协议的默认端口是53端口,源端口是随机的。这个里面没有序号、确认号和标志位都没有。这就是udp协议。基于udp协议之上的是dns协议:2.下

Java可靠的UDP

请推荐实现可靠udp的java库。它将用于游戏服务器与客户端和其他服务器进行通信。附言:也许您可以建议可以更高效地处理此类任务(游戏服务器)的技术?但这必须在Linux上工作。编辑:这是一款Action类游戏,因此需要尽快与服务器通信。编辑2:我找到了Enet这是用于FPS游戏的,但它是C++,如果我一秒钟调用它多次,会不会有开销? 最佳答案 这些是我所知道的实现可靠UDP之类的库/框架:MobileReliableUDP(MR-UDP)MR-UDPaimsatprovidingreliablecommunicationbasedo

java - Jnetpcap,准备UDP/TCP/IP/ICMP数据包

最近,我正在使用Jnetpcap通过网络发送/接收原始数据包。Jnetpcap提供通过Pcap.sendPacket()发送数据包。此方法获取要发送的原始缓冲区或字节。另一方面,org.jnetpcap.protocol.*类包装了协议(protocol)头,我们可以使用它们来解码捕获的数据包。当我使用下面的代码制作一个Ip4数据包时,它会导致NullPointerException:importorg.jnetpcap.protocol.network.Ip4;publicclassTest{publicstaticvoidmain(String[]args){Ip4ip4=newI

java - 如何在java中通过UDP发送一个int

我正在尝试编写一些通过UDP发送单个int的代码。我到目前为止的代码:发件人:intnum=2;DatagramSocketsocket=newDatagramSocket();ByteArrayOutputStreambout=newByteArrayOutputStream();PrintStreampout=newPrintStream(bout);pout.print(num);byte[]barray=bout.toByteArray();DatagramPacketpacket=newDatagramPacket(barray,barray.length);InetAddr

Java 丢弃了一半的 UDP 数据包

我有一个简单的客户端/服务器设置。服务器在C中,查询服务器的客户端是Java。我的问题是,当我通过连接发送带宽密集型数据(例如视频帧)时,它会丢弃多达一半的数据包。我确保我在服务器端正确地分段了udp数据包(udp的最大有效负载长度为2^16)。我验证了服务器正在发送数据包(printfsendto()的结果)。但是java似乎没有得到一半的数据。此外,当我切换到TCP时,所有视频帧都通过了,但延迟开始增加,在几秒钟的运行时间后增加了几秒钟的延迟。有什么明显的我遗漏的吗?我就是想不通。 最佳答案 获取像Wireshark这样的网络工

java - 即时通讯工具 TCP 或 UDP 哪个更好?

我需要在Java语言中使用纯套接字实现客户端/服务器即时消息。服务器应该为大量客户端提供服务,我需要决定应该使用哪个套接字-TCP或UDP。谢谢,科斯塔。 最佳答案 TCP原因:TCP:“绝对保证传输的数据保持完整,并按照发送时的相同顺序到达。”UDP:“根本无法保证发送的消息或数据包一定会到达。”了解更多信息:http://www.diffen.com/difference/TCP_vs_UDP您是否希望您的聊天消息可能丢失?编辑:我错过了关于“大型聊天程序”的部分。我认为由于聊天程序的性质,它需要一个TCP服务器,我无法想象用户

java - Java中的UDP广播

早上好。我是Java和套接字连接方面的新手,但我正在尝试将端口8001上的255.255.255.255上的UDP数据包/广播发送到设备。我可以让数据发送得很好,但是当需要接收数据时,连接超时。我有一个数据包嗅探器,我可以看到数据包发送,然后设备响应。我很确定这是我在代码中遗漏的菜鸟错误,但我已经坚持了一段时间,我们将不胜感激。m_Socket=newDatagramSocket(m_SERVERPORT);InetAddressaddress=InetAddress.getByName(m_SERVERIP);m_DataPack=newDatagramPacket(m_SERVER