摘要:
NIO 主要是用在服务端 处理高并发的情况下,用少量的线程处理很多个并发请求,它的优势在服务端、高并发,并且也是基于IO的,相当于封装了一层IOIO主要用在客户端 处理单一链路,因为同一个socket在处理read和write是不阻塞的,但是同时read或者write都是阻塞的,这导致只能同时一个线程处理read和write如果基于NIO开发客户端,那么不能体现NIO的优势,一方面封装了IO,反而... 阅读全文
摘要:
阅读全文
摘要:
对I/O 分为两类:文件I/O 和 流I/O 通道可以访问两个系统:文件系统 和 网络系统针对文件系统 JAVA 用 FileChannel 来支持针对网络系统 JAVA 用 SocketChannel SocketServerChannel DatagramChannel 三个套接字通道类来支持 阅读全文
摘要:
MINA 服务端 对READ 和 WRITE 都要做异步MINA 客户端 对READ 做异步 WRITE 做阻塞,如果WRITE 也异步,会出现少量请求延迟1秒的问题 阅读全文
摘要:
SocketChannel 叫套接字通道,面向流,就是通常的TCPread,write 前必须建立连接,线程安全,任意时刻只能有一个线程进行读取和写入DatagramChannel 叫数据报通道,面向数据报,就是通常的UDPsend,receive 前无需建立连接,read,write前必须建立连接,线程安全,任意时刻只能有一个线程进行读取和写入 阅读全文
摘要:
流式套接字要分客户和服务器,而数据报不用分 流式套接字适合传输数据量大的,而数据报套接字适合传递数据量少的 流式套接字建立麻烦,数据报套接字建立简单 客户的流式套接字只能向一个方向传递,数据报套接字可以接受任何方向的来得数据,并可以向任何地址发送数据报流套接字比数据报套接字好,这样你可以不必管理底层细节,只需要相信TCP就可以保证传送的数据是依次,可靠的传送的,缺点是效率相对数据报套接字低。 使用... 阅读全文
摘要:
1,TCP/IP通讯是不可能丢包的。2,TCP/IP通讯是绝对的先发先到的。顺序不可能错乱。3,多线程向Socket 中发数据时,发送操作要加锁的。Java中加synchronized。否则肯定会出乱子。4,TCP 粘包 TCP 是流式的 ,无消息边界。 所以有可能 2 个包(或多个包) 合并成一个包。5,多个并发线程可安全地使用套接字通道。尽管在任意给定时刻最多只能有一个线程进行读取和写入操作,... 阅读全文
摘要:
JDK ByteBuffer属性:Mark上次position的快照Position当前读写索引未知Limit缓冲区限制Capacity缓冲区能力Offset偏移量说明:Position(Mark)<=limit<=capacity当position==limit时就没有字节可读写了每次get或put都将增加position重置mark就是设置mark=-1方法:Limit(int)如... 阅读全文
摘要:
IP叫网际协议,有分组打包、集合组装的特性,提供不可靠的包交换IP地址是一个字符串socket叫套接字,用于描述ip地址和端口,是传输的句柄tcp传输控制协议,面向连接,可靠,位于传输层,IP层上,应用层下,采用滑动窗口协议和慢启动算法,传输数据报,形成字节流udp用户数据包协议,无连接,不可靠,位于传输层,IP层上,应用层下,不能对数据包分组、组装和排序,传输数据报Tcp/ip 传输控制协议/网... 阅读全文
摘要:
应用CumulativeProtocolDecoder/** Licensed to the Apache Software Foundation (ASF) under one* or more contributor license agreements. See the NOTICE file* distributed with this work for additional inform... 阅读全文