java如何实现UDP远程监听获取数据
我想通过一台机器去监听另一台机器的UDP端口获取数据, 下面这种方式 能监听 就是接受不到数据
DatagramSocket ds = null; DataOutputStream dos = null; try { dos = new DataOutputStream(new FileOutputStream("d:\temp\test.zip")); ds = new DatagramSocket(); //ds.bind(new InetSocketAddress("192.168.1.81",9090)); ds.connect(InetAddress.getByName("192.168.1.101"),8888); ds.setSoTimeout(12*1000); byte[] buf = new byte[61440]; DatagramPacket dp = new DatagramPacket(buf, buf.length); while (true) { ds.receive(dp); dos.write(buf, 0, dp.getData().length); dos.flush(); } } catch (Exception e) { e.printStackTrace(); dos.close(); ds.close(); }
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
只要传输的字节不大于63355就不会丢包,最好还是设置小一些
丢包问题怎么解决
远程监听不了,只可能监听本地的端口,有一种方式是通过广播的方式可以实现远程监听
回复
UDP单播不管用什么方式都无法实现远程监听?
回复
我要把数据从固定服务器传到客户端,两个不在同一个网段中,一个是外网,一个是局域网,这用广播不行吧?
你好,我也遇到这个问题了,请问你是这么解决的,谢谢!
没有异常
有没有异常?有的话请将完整异常堆栈贴出来
怎么解答的人这么少啊
通过本地监听可以获得发送的数据 ,不会是发送端的问题
另外一端“发送”的监控信息呢?这里只有“接受”一方的信息啊,也可能是“发送”那方的问题。