随笔分类 -  网络编程

摘要:最初始的IO模型由于IO在阻塞时会一直等待,因此在用户负载增加时,性能下降的非常快。 server导致阻塞的原因: 1、serversocket的accept方法,阻塞等待client连接,直到client连接成功。 2、线程从socket inputstream读入数据,会进入阻塞状态,直到全部数 阅读全文
posted @ 2019-06-21 17:07 柚子味儿的西瓜 阅读(19) 评论(0) 推荐(0)
摘要:JDK的ByteBuffer与Netty的ByteBuf之间的差异对比: Netty的ByteBuf采用了读写索引分离的策略(readerIndex与writerIndex),一个初始化(里面尚未有任何数据)的ByteBuf的readerIndex与writerIndex值都为0。 当读索引与写索引 阅读全文
posted @ 2019-06-19 17:29 柚子味儿的西瓜 阅读(36) 评论(0) 推荐(0)
摘要:1、BIO Server端 package com.strive.bio; import java.io.IOException; import java.io.InputStream; import java.net.ServerSocket; import java.net.Socket; im 阅读全文
posted @ 2019-06-19 09:43 柚子味儿的西瓜 阅读(8) 评论(0) 推荐(0)
摘要:IO的方式通常分为几种,同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 一、BIO 在JDK1.4出来之前,我们建立网络连接的时候采用BIO模式,需要先在服务端启动一个ServerSocket,然后在客户端启动Socket来对服务端进行通信,默认情况下服务端需要对每个请求建立一堆线程等待 阅读全文
posted @ 2019-06-18 17:08 柚子味儿的西瓜 阅读(26) 评论(0) 推荐(0)
摘要:如下, 一共存在11种实现方式及其对应的性能测试结果: 1. 使用IOUtils.toString (Apache Utils) String result = IOUtils.toString(inputStream, StandardCharsets.UTF_8); 2. 使用CharStrea 阅读全文
posted @ 2019-06-18 16:08 柚子味儿的西瓜 阅读(77) 评论(0) 推荐(0)
摘要:1、使用HttpClient添加的maven依赖(尽量版本平齐或者比我的高,低的可能会出现找不到类的情况) <dependency> <groupId>org.apache.httpcomponents</groupId> <artifactId>httpclient</artifactId> <v 阅读全文
posted @ 2019-03-13 10:42 柚子味儿的西瓜 阅读(10) 评论(0) 推荐(0)