可能很多Java程序员对TCP的理解只有一个三次握手,四次挥手的认识,我觉得这样的原因主要在于TCP协议本身稍微有点抽象(相比较于应用层的HTTP协议);其次,非框架开发者不太需要接触到TCP的一些细节。其实我个人对TCP的很多细节也并没有完全理解,这篇文章主要针对微信交流群里有人提出的长连接,心跳的问题,做一个统一的整理。在Java中,使用TCP通信,大概率会涉及到Socket、Netty,本文会借用它们的一些API和设置参数来辅助介绍。TCP本身并没有长短连接的区别,长短与否,完全取决于我们