Netty远程访问

前言

前两天讲的是Netty的原理和实现过程,今天一些自己在项目上遇到的问题


过程

我这次是需要服务端的程序放到服务器上,所以在整个过程中遇到一些问题
1 在服务器上配置jdk
https://www.cnblogs.com/yuanbo123/p/5819564.html
2idea导出可运行的jar,但是报错了
https://www.cnblogs.com/VweiweiyixiaoV/p/6610681.html
这里写图片描述
原因是因为META-INF/MAIFEST.MF文件没有包含在内,解决方案,更改一下路径就可以了
https://blog.csdn.net/xuemengrui12/article/details/74984731

3但是客户端在访问的时候一直出现,原因是因为没有关闭服务器的防火墙,所以被挡到了外面
https://blog.csdn.net/zhyh1435589631/article/details/51036091
4但是运行的时候依旧是报错了
这里写图片描述
原因是发生了阻塞,更改服务端Handler里面的代码,当服务端读写完之后发生了阻塞没有及时的关闭
http://www.linkedkeeper.com/detail/blog.action?bid=1027


5关于日志问题
当时非常郁闷为什么配置了日志但是还说没有找到呢,突然灵光一现发现自己没有加载配置文件,哈哈
这里写图片描述
解决方案加上配置文件

//获取项目的根目录
        String relativelyPath = System.getProperty("user.dir");
        //log4j的路径
        String log4jPath = relativelyPath + "/resources/log4j.properties";
        //读取配置文件
        PropertyConfigurator.configure(log4jPath);

6.解决在同一WiFi环境下,不同设备ping不通问题

https://jingyan.baidu.com/album/72ee561ab11933e16138dfc9.html?picindex=7

解决UDP丢包问题

在代码上进行优化
服务端代码优化设置UDP socket读缓冲区为2M
// 这一行设置了UDP socket读和写缓冲区为2M

selfBootStrap.option(ChannelOption.SO_RCVBUF, 1024 * 2048); 
.option(ChannelOption.SO_SNDBUF, 2*1024 * 1024);// 设置UDP写缓冲区为1M

服务器上进行优化
1在Linux服务器上进行优化,对于读和写缓冲区的配置需要设置,缓冲区太小所以udp就丢包了哦。或者是udp发包太快,也丢包了,进行设置下面的属性,在文件下面/etc/sysctl.conf

rmem_max
wmem_max


当我们这些都配置完之后,我发了1000个包,最多只收到了90个包,当我我都绝望了,不知道应该怎么办,就各种查,各种问,最后才知道自己多写了两行代码,原因是因为我们Handler里面写了这两行代码,其实不用写着两行代码,如果写了那么我们每次都是强制性的去关闭它,所以Udp协议在网速快的时候他过来的包多点,他要是慢点就被我前置关闭了,Netty本身就会把我们关闭所以我们不需要手动去做。厉害吧~1000个包完全没有问题哦
这里写图片描述


总结

嘿嘿,这仅仅是开始,明天给大家分享电信平台这个东东哦。期待吧~

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王雪芬-ghqr-264962

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值