小小默:进无止境

QQ:1274654983 欢迎交流~~

TCP粘包/拆包与Netty解决方案

【1】TCP粘包/拆包 TCP是个“流”协议,所谓流,就是没有界限的一串数据。大家可以想象河里的流水,它们是连成一片的,其间并没有分界线。TCP底层并不了解上层业务数据的具体含义,它会根据TCP缓冲区的实际情况进行包的划分,所以在业务上认为,一个完整的包可能会被TCP拆分成多个包进行发送,也有可能...

2019-02-13 21:34:47

阅读数 289

评论数 0

Linux(UNIX)五种网络I/O模型与IO多路复用

Linux的内核将所有的外部设备都看做一个文件来操作,对一个文件的读写操作会调用内核提供的系统命令,返回一个file descriptor(fd 文件描述符)。而对一个socket的读写也会有相应的描述符,称为socketfd(socket描述符)。描述符就是一个数字,它指向内核中的一个结构体(文...

2019-02-13 12:32:02

阅读数 145

评论数 0

Netty应用实例学习

Netty 是一个 Java NIO 客户端服务器框架,使用它可以快速简单地开发网络应用程序,比如服务器和客户端的协议。Netty 大大简化了网络程序的开发过程比如 TCP 和 UDP 的 socket 服务的开发。 【1】Netty 实现聊天功能 ①SimpleChatServerHandler...

2018-11-20 14:56:10

阅读数 126

评论数 0

Netty核心功能学习

先看官网一张图: 该图涵盖了Netty的核心功能。 【1】丰富的缓冲实现 Netty 使用自建的 buffer API,而不是使用 NIO 的ByteBuffer 来表示一个连续的字节序列。与 ByteBuffer 相比这种方式拥有明显的优势。 Netty 使用新的 buffer 类型ByteB...

2018-11-20 12:09:00

阅读数 80

评论数 0

Netty基础入门学习

【1】Netty是什么 ① 有这样几个描述: Netty是一个异步事件驱动的网络应用程序框架, 用于快速开发可维护的高性能协议服务器和客户端。它极大地简化了TCP和UDP套接字服务器等网络编程。 netty是基于Java NIO的网络应用框架,client-server框架。 Netty是一个高...

2018-11-19 11:56:06

阅读数 134

评论数 0

NIO - NIO.2中的文件与资源支持

随着JDK 7 的发布,Java对NIO进行了极大的扩展,增强了对文件处理和文件系统特性的支持,以至于我们称他们为NIO.2。因为NIO 提供的一些功能,NIO已经成为文件处理中越来越重要的部分。 【1】Path 与Paths java.nio.file.Path 接口代表一个平台无关的平台路...

2018-10-03 19:02:48

阅读数 94

评论数 0

NIO - 灵魂核心之选择器Selector(多路复用器)

【1】使用 NIO 完成网络通信的三个核心 ① 通道(Channel):负责连接 核心接口Channel,这里主要讲SelectableChannel。 java.nio.channels.Channel 接口: |--SelectableChannel |--SocketChan...

2018-10-03 12:17:58

阅读数 350

评论数 1

NIO - 基础入门之通道和缓冲区

【1】NIO和IO Java NIO(New IO)是从Java 1.4版本开始引入的一个新的IO API,可以替代标准的Java IO API。NIO与原来的IO有同样的作用和目的,但是使用的方式完全不同,NIO支持面向缓冲区的、基于通道的IO操作(IO是基于流的,单向操作)。NIO将以更加高...

2018-09-29 18:43:07

阅读数 237

评论数 0

Telnet - 访问8080端口并发送数据

首先说明一下前提:① 安装了Telnet客户端(服务器); ② 本机防火墙开启了8080端口(入站规则);后台使用的netty,会将Telnet发送的数据打印到控制台。这里主要说明如何使用Telnet发送数据。① cmd 进入dos② 连接ip 端口 telnet localhost 8080...

2017-12-01 16:31:57

阅读数 10097

评论数 0

AJAX POST请求中参数以form data和request payload形式在servlet中的获取方式

HTTP请求中,如果是get请求,那么表单参数以name=value&name1=value1的形式附到url的后面。 如果是post请求,那么表单参数是在请求体中,也是以name=value&name1=value1的形式在请求体...

2017-11-14 09:57:30

阅读数 402

评论数 0

字节数组流ByteArrayOut(In)putStream使用详解

字节数组流: ByteArrayOutputStream: 可以捕获内存缓冲区的数据,转换成字节数组。 @Test public void byteArray() throws IOException{ ByteArrayOutputStream bout...

2016-12-05 17:55:29

阅读数 420

评论数 0

JavaSE-IO流基础详解

流是一个抽象的概念。当Java程序需要从数据源读取数据时,会开启一个到数据源的流。数据源可以是文件,内存或者网络等。同样,当程序需要输出数据到目的地时也一样会开启一个流,数据目的地也可以是文件、内存或者网络等。流的创建是为了更方便地处理数据的输入输出。流是同步的。也就是说,当程序(确切的将是线程)...

2016-11-16 17:02:22

阅读数 552

评论数 0

File操作-InputStreamReader/Writer(转换器)

前面所举例的InputStream,OutputStream,是针对字节流进行操作的;FileReader,FileWriter是针对字符流进行操作的。另外在写入的时候并未提供编码格式,极易造成中文乱码。InputStreamReader/OutputStreamWriter,为字节流与字符流的转...

2016-11-16 15:56:19

阅读数 503

评论数 0

File操作-InputStream/OutputStream及是否创建文件

处理的都是字节流,写入的时候也为字节流,不能直接写入中文字符 1.实现文件复制 示例代码如下: public void copyFile(String src, String dest) { // 1.提供读入、写出的文件 File file1 = new...

2016-11-16 15:39:18

阅读数 3748

评论数 0

File操作-FileReader(FileWriter)/BufferedReader(Writer)

1.FileReader/FileWriter读写文本文件@Test public void testBufferedReader(){ BufferedReader br = null; BufferedWriter bw = null; ...

2016-11-16 15:14:02

阅读数 510

评论数 0

File操作 - RandomAccessFile使用详解

RandomAccessFileRandomAccessFile主要完成随机读取的功能,可以读取指定位置的内容。RandomAccessFile不属于InputStream和OutputStream类系的。 实际上,除了实现DataInput和DataOutput接口之外(DataInputS...

2016-11-16 14:16:46

阅读数 482

评论数 0

ObjectOut(in)putStream与对象的序列化

Java对象序列化时参与序列化的内容包含以下几个方面:1.属性,包括基本数据类型、数组以及其他对象的引用; 2.类名。不能被序列化的内容有以下几个方面:1.方法。 2.有static修饰的属性。 3.有transient修饰的属性。在序列化过程中不仅保留当前类对象的数据,而且递归保存对...

2016-09-30 10:47:45

阅读数 853

评论数 0

File操作-使用NIO进行文件的读写与复制

Tips-1:并不是所有的IO流类都支持NIO操作的,支持的类有FileInputStream、FileOutputStream和RandomAccessFile./*文件读取,返回读取内容*/ public static String fileReader(File fileName)...

2016-09-27 18:15:13

阅读数 612

评论数 0

提示
确定要删除当前文章?
取消 删除