网络编程
柚子味儿的西瓜
这个作者很懒,什么都没留下…
展开
-
HttpClient发送POST和GET请求
1、使用HttpClient添加的maven依赖(尽量版本平齐或者比我的高,低的可能会出现找不到类的情况) <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</ar...原创 2019-03-13 10:42:36 · 155 阅读 · 0 评论 -
NIO和IO
1、BIO Server端 package com.strive.bio; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; import java.util.concurrent.ExecutorService; im...原创 2019-06-19 09:43:43 · 135 阅读 · 0 评论 -
JDK的ByteBuffer与Netty的ByteBuf之间的差异对比
JDK的ByteBuffer与Netty的ByteBuf之间的差异对比: Netty的ByteBuf采用了读写索引分离的策略(readerIndex与writerIndex),一个初始化(里面尚未有任何数据)的ByteBuf的readerIndex与writerIndex值都为0。 当读索引与写索引处于同一个位置时,如果继续读取,那么就会抛出IndexOutOfBoundsException。 对...转载 2019-06-19 17:29:40 · 392 阅读 · 0 评论 -
Reactor模式演化的过程
最初始的IO模型由于IO在阻塞时会一直等待,因此在用户负载增加时,性能下降的非常快。 server导致阻塞的原因: 1、serversocket的accept方法,阻塞等待client连接,直到client连接成功。 2、线程从socket inputstream读入数据,会进入阻塞状态,直到全部数据读完。 3、线程向socket outputstream写入数据,会阻塞直到全部数据写完。...原创 2019-06-21 17:07:01 · 259 阅读 · 0 评论 -
Java中将InputStream读取为String, 各种方法的性能对比
如下, 一共存在11种实现方式及其对应的性能测试结果: 1. 使用IOUtils.toString (Apache Utils) String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8); 2. 使用CharStreams (guava) String result = CharStreams.toStri...转载 2019-06-18 16:08:36 · 2484 阅读 · 0 评论 -
BIO与NIO、AIO的区别(这个容易理解)
IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待请求,而客户端发送请求后,先咨询服务端是否有线程相应,如果没有则会一直等待或者遭到拒...转载 2019-06-18 17:08:12 · 310 阅读 · 0 评论