使用netty4.x 编写TCP服务器关于握手问题

使用netty4.x 编写TCP服务器关于握手问题

还是和机顶盒通讯的项目,netty编写udp的协议已经实现了完毕;

要求TCP也要来一套….我就呵呵了…写呗.

基本上流程差不多,decoder,encoder,handler几乎都可以重用的,写好后一测..吓我一大蹦

[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x2264fc80, /192.168.1.108:50671 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0xe19dd5d6, /192.168.1.108:50672 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x0c6528da, /192.168.1.108:50673 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x627a3d1b, /192.168.1.108:50674 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x38ca0152, /192.168.1.108:50675 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0xd423fe93, /192.168.1.108:50676 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x978e3190, /192.168.1.108:50677 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0xcb219784, /192.168.1.108:50678 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x205d58c1, /192.168.1.108:50679 => /192.168.1.120:5000]
2015-07-25 17:29:45
[INFO]-[Thread: nioEventLoopGroup-3-1]-[io.netty.util.internal.logging.Slf4JLogger.info()]: [id: 0x0bdcf37c, /0:0:0:0:0:0:0:0:5000] RECEIVED: [id: 0x3ba890f4, /192.168.1.108:50680 => /192.168.1.120:5000]
2015-07-25 17:29:45

服务器启动,客户端访问后,控制台瞬间打印出一大堆日志,又没有异常…客户端在进行批量连接,要不是自己写的还以为是攻击呢.

仔细想了想好像没有地方出纰漏,开了wireshark抓了下包,如图:

180748_PuUL_261246.jpg

server 192.168.1.120:5000

remote 192.168.1.108:50404

这是一次完整的请求,顺序依次是(3次握手->数据传输->握手关闭),关闭是服务器主动提出的的(5000->50404)发送的FIN包,非常奇怪,代码中并没有主动关闭连接的地方..

检查代码发现,decoder中解码时因为”\r\n”未处理,提取协议数据时出现异常,异常呢??..因为控制台刷的太快..直接刷过了…

180748_SMBr_261246.jpg

转载于:https://my.oschina.net/u/261246/blog/483707

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/109386.html原文链接:https://javaforall.net

(0)
上一篇 2021年9月8日 上午6:00
下一篇 2021年9月8日 上午6:00


相关推荐

  • 腾讯Q3业绩会实录:混元大模型架构将升级,微信和元宝形成良性互补

    腾讯Q3业绩会实录:混元大模型架构将升级,微信和元宝形成良性互补

    2026年3月13日
    2
  • java生成二维码,自定义宽高和边框大小

    java生成二维码,自定义宽高和边框大小下面封装的两个方法 url 地址是 http 开头的要不然浏览器没办法直接跳转宽高都是一个数 wh 边框 margin0 是没有边框 1 是最小边框返回值 BufferedImag 类型的数据 调用第二个方法 respImageBuf 下载到浏览器 paramurl 链接内容 paramwh 宽高 parammargin 边框大小 return publicBuffer

    2026年3月18日
    2
  • 用java判断闰年的条件解释_Java判断闰年的2种方法示例

    用java判断闰年的条件解释_Java判断闰年的2种方法示例前言:给定一个年份,判断这一年是不是闰年。当以下情况之一满足时,这一年是闰年:1.年份是4的倍数而不是100的倍数;2.年份是400的倍数。其他的年份都不是闰年。方法一:publicclassBissextile{booleanbissextile(intyear){//创建boolean类型的方法if(year%4==0&&year%100!=…

    2022年7月8日
    26
  • java实现第八届蓝桥杯数位和

    java实现第八届蓝桥杯数位和数位和题目描述数学家高斯很小的时候就天分过人。一次老师指定的算数题目是:1+2+…+100。高斯立即做出答案:5050!这次你的任务是类似的。但并非是把一个个的数字加起来,而是对该数字的每一个数位作累加。这样从1加到100的“和”是:901从10加到15是:21,也就是:1+0+1+1+1+2+1+3+1+4+1+5,这个口算都可以出结果的。按这样的“加法”,从1加到1000是…

    2022年6月15日
    40
  • Robotium 常用方法

    Robotium 常用方法①点击:clickOnButton(int)//ClicksonaButtonwithagivenindex.clickOnButton(String)//ClicksonaButtonwithagiventext.clickOnCheckBox(int)//ClicksonaCheckBoxwithagivenindex.clickOnVie

    2022年7月25日
    17
  • tomcat版本区别

    tomcat版本区别nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp nbsp tomcat nbsp 简介 nbsp ApacheTomcat 软件是一个开源实现 JavaServlet jsp Java 表达式语言和 JavaWebSocke 技术 JavaServlet jsp Java 表达式语言和 JavaWebSocke 规范是根据开发的 Java 社区过程 ApacheTomcat 软件

    2026年3月26日
    1

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号