随笔分类 -  socket 编程

摘要:前言 在RPC框架中,粘包和拆包问题是必须解决一个问题,因为RPC框架中,各个微服务相互之间都是维系了一个TCP长连接,比如dubbo就是一个全双工的长连接。由于微服务往对方发送信息的时候,所有的请求都是使用的同一个连接,这样就会产生粘包和拆包的问题。本文首先会对粘包和拆包问题进行描述,然后介绍其常 阅读全文
posted @ 2019-05-23 12:12 Lost blog 阅读(256) 评论(0) 推荐(0) 编辑
摘要:http://tutorials.jenkov.com/java-nio/index.html https://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html 阅读全文
posted @ 2019-03-27 09:28 Lost blog 阅读(136) 评论(0) 推荐(0) 编辑
摘要:TCP协议的简单介绍 TCP是面向连接的运输层协议 简单来说,在使用TCP协议之前,必须先建立TCP连接,就是我们常说的三次握手。在数据传输完毕之后,必须是释放已经建立的TCP连接,否则会发生不可预知的问题,造成服务的不可用状态。 每一条TCP连接都是可靠连接,且只有两个端点 TCP连接是从Serv 阅读全文
posted @ 2018-07-24 17:50 Lost blog 阅读(441) 评论(0) 推荐(0) 编辑
摘要:官方api:http://netty.io/4.1/api/io/netty/handler/codec/LengthFieldBasedFrameDecoder.html MessageDecoder: 其中,报文长度为6位:17-22 参考 https://blog.csdn.net/besto 阅读全文
posted @ 2018-04-16 14:44 Lost blog 阅读(978) 评论(0) 推荐(0) 编辑
摘要:tcp是一个“流”的协议,一个完整的包可能会被TCP拆分成多个包进行发送,也可能把小的封装成一个大的数据包发送,这就是所谓的TCP粘包和拆包问题。 假设客户端分别发送数据包D1和D2给服务端,由于服务端一次性读取到的字节数是不确定的,所以可能存在以下4种情况。 1.服务端分2次读取到了两个独立的包, 阅读全文
posted @ 2018-03-19 17:50 Lost blog 阅读(320) 评论(1) 推荐(0) 编辑
摘要:http://cindy.sourceforge.net 阅读全文
posted @ 2018-01-30 10:40 Lost blog 阅读(198) 评论(0) 推荐(0) 编辑
摘要:Java的NIO中有关Buffer的几种常用方法比如clear,rewind和flip到底有哪些区别。下面给大家这三种方法的源码,方便大家记忆。clear()方法用于写模式,其作用为情况Buffer中的内容,所谓清空是指写上限与Buffer的真实容量相同,即limit==capacity,同时将当前 阅读全文
posted @ 2018-01-25 17:33 Lost blog 阅读(1038) 评论(0) 推荐(0) 编辑
摘要:在缓冲区中,最重要的属性有下面三个,它们一起合作完成对缓冲区内部状态的变化跟踪: capacity position limit position和limit的含义取决于Buffer处在读模式还是写模式。不管Buffer处在什么模式,capacity的含义总是一样的。 这里有一个关于capacity 阅读全文
posted @ 2018-01-25 17:31 Lost blog 阅读(624) 评论(0) 推荐(0) 编辑
摘要:参考:http://ifeve.com/selectors/ 参考:https://www.ibm.com/developerworks/cn/education/java/j-nio/j-nio.html netty的NioEventLoop类的实现也是类似 这些都是在实践中踩过雷的,今天某应用再 阅读全文
posted @ 2018-01-09 10:31 Lost blog 阅读(1108) 评论(0) 推荐(0) 编辑
摘要:JDK NIO的BUG,例如臭名昭著的epoll bug,它会导致Selector空轮询,最终导致CPU 100%。官方声称在JDK1.6版本的update18修复了该问题,但是直到JDK1.7版本该问题仍旧存在,只不过该BUG发生概率降低了一些而已,它并没有被根本解决。该BUG以及与该BUG相关的 阅读全文
posted @ 2018-01-08 11:01 Lost blog 阅读(21901) 评论(2) 推荐(4) 编辑
摘要:参考:http://blog.csdn.net/zmx729618/article/details/51860699 https://zhuanlan.zhihu.com/p/23488863 http://blog.csdn.net/jjzhk/article/details/39553613 阅读全文
posted @ 2017-09-14 17:44 Lost blog 阅读(447) 评论(0) 推荐(0) 编辑
摘要:NIO专题:http://developer.51cto.com/art/201112/307172.htm 一、新IO概述: 新IO和传统IO都是用于进行输入/输出,相比于传统IO面向流的处理方式,新IO采用内存映射文件来处理输入/输出,新IO将文件或文件的一段区域映射到内存中,这样就可以像访问内 阅读全文
posted @ 2017-07-13 11:11 Lost blog 阅读(172) 评论(0) 推荐(0) 编辑
摘要:参考:http://blog.csdn.net/linuu/article/details/51371595 https://www.jianshu.com/p/a0a51fd79f62 netty默认是只能接收1024个字节,但是我们要传输大文件怎么办? 上代码: 改之后服务端: 改之后客户端: 阅读全文
posted @ 2017-06-16 14:50 Lost blog 阅读(4701) 评论(0) 推荐(0) 编辑
摘要:参考:http://blog.csdn.net/suifeng3051/article/details/28861883?utm_source=tuicool&utm_medium=referral 1. 背景 1.1. Netty的优势 Netty是业界最流行的NIO框架,它的可靠性、高性能和可扩 阅读全文
posted @ 2017-06-07 09:58 Lost blog 阅读(450) 评论(0) 推荐(0) 编辑





点击右上角即可分享
微信分享提示