默认
打赏 发表评论 111
想开发IM:买成品怕坑?租第3方怕贵?找开源自已撸?尽量别走弯路了... 找站长给点建议
博主好呀,可以问个问题码?最近用了你的UDP代码,然后本地局域网环境是可以运行的,但是如果我后端代码放在公网服务器(阿里云)就不能收到本地android的UDP包了。我有把目的地址的serverIP设置成服务器的公网IP,端口serverUDPPort也是服务器端代码对应修改了,防火墙开放了所有UDP端口。但是我本地输出测试了一下,android发送出去的时候,ds.getRemoteSocketAddress()确实是服务器的IP和端口,但是ds.getLocalSocketAddress()是127.0.0.1,不知道会不会是这个问题。如果修改LocalUDPSocketProvider.java第30行的this.localUDPSocket = new DatagramSocket(ConfigEntity.localUDPPort);多加第二个参数InetAddress.getLocalHost(),那么控制台要是输出ds数据包的信息,会得到ds.getLocalSocketAddress()是:/169.254.146.145 是保留地址。
然而我经过多次修改,服务器还是没能收到数据包(Linux的netstat -su没有看到UDP包的接收和发送收到android端的影响,而且我执行接收和发送的地方有一个日志输出Log的代码,监听日志并没有记录)。

想问一下,UDP在本地访问公网服务器的情况,要怎么做?网上查了很多网文,好像没找到比较清楚地说明要用啥的。额
签名: 通讯相关的没搞好,作业日期要到了,只能先把这部分功能搁一搁了,可惜。
引用:njakdnjljqlwjd 发表于 2019-12-11 16:02
感谢楼主,正好最近学习上有需求,但是自己又不是很懂,哈哈

嗯嗯
感谢楼主,正好最近学习上有需求,但是自己又不是很懂,哈哈
签名: 通讯相关的没搞好,作业日期要到了,只能先把这部分功能搁一搁了,可惜。

感动吧,终于通了。。
NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示 [附件下载]_运行正常 阔以运行
引用:wx_p0w0X57X 发表于 2019-10-16 10:51
非常感谢,我将会使用这个demo进行学习


非常感谢,我将会使用这个demo进行学习
引用:JackJiang 发表于 2019-09-11 20:25
用心跳。你可以看一下这篇文章《为什么说基于TCP的移动端IM仍然需要心跳保活?》,虽然文章是以tcp不例讲 ...

学习了
感谢 Jack
引用:吴佳同 发表于 2019-09-11 18:08
你好 Jack
我有个基础问题不太懂,想请教一下。
udp的话超过一定时间不通讯,一般外网路由器会关闭那个临 ...

用心跳。你可以看一下这篇文章《为什么说基于TCP的移动端IM仍然需要心跳保活?》,虽然文章是以tcp不例讲的,但udp的道理是一模一样的,没区别。
你好 Jack
我有个基础问题不太懂,想请教一下。
udp的话超过一定时间不通讯,一般外网路由器会关闭那个临时端口的,这时外网服务器是无法给客户端推送的。这个是间不一定,有的可能超过10秒不通讯就关闭了。
您是如何保证服务器一直可以正常发送消息给客户端的?
good!学习了!!!!
太强了。 点赞
引用:yonhow 发表于 2019-04-16 15:06
谢谢!已解决问题。

是跟链接里同样的情况吗?有没有做过问题复盘仔细分析?
引用:JackJiang 发表于 2019-04-14 16:17
你参考一下这个文章《发生java.lang.OutOfMemoryError: Direct buffer memory》

谢谢!已解决问题。
引用:yonhow 发表于 2019-04-01 08:58
就是运行楼主服务端代码,用TCP/UDP性能测试工具,UDP协议本机测试,10000连接,发送的是一个json格式数 ...

你参考一下这个文章《发生java.lang.OutOfMemoryError: Direct buffer memory
下载了,后面也会学习一下
引用:JackJiang 发表于 2019-03-29 17:20
你这是什么场景下出现的?这肯定得具体分析你的代码才能知道了

就是运行楼主服务端代码,用TCP/UDP性能测试工具,UDP协议本机测试,10000连接,发送的是一个json格式数据,运行25分钟左右就报这个错误了。
NIO框架入门(一):服务端基于Netty4的UDP双向通信Demo演示 [附件下载]_360截图20190401085458376.jpg
引用:yonhow 发表于 2019-03-29 16:58
内存溢出问题如何解决?An exceptionCaught() event was fired, and it reached at the tail of the pipeli ...

你这是什么场景下出现的?这肯定得具体分析你的代码才能知道了
内存溢出问题如何解决?An exceptionCaught() event was fired, and it reached at the tail of the pipeline. It usually means the last handler in the pipeline did not handle the exception.
java.lang.OutOfMemoryError: Direct buffer memory
应该不错
打赏楼主 ×
使用微信打赏! 使用支付宝打赏!

返回顶部