Java网络编程
文章平均质量分 63
加点水
冇心冇肺
展开
-
(十一) Pipe
Java NIO 管道是2个线程之间的单向数据连接。Pipe有一个source通道和一个sink通道。数据会被写到sink通道,从source通道读取。 这里是Pipe原理的图示: 创建管道 通过Pipe.open()方法打开管道。例如: 1 Pipe pipe = Pipe.open(); 向管道原创 2014-06-16 21:43:57 · 299 阅读 · 0 评论 -
【Java TCP/IP Socket】基于NIO的TCP通信(含代码)
NIO主要原理及使用 NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接、读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候,程序也可以做其他事情,以实现线程的异步操作。 考虑一个即时消息服务器,可能有上千个客户端同时连接到服务器,但是在任何时刻只有非常少量的消息需要读取和分发(如果采用线程池或者一转载 2014-06-16 22:24:06 · 427 阅读 · 0 评论 -
(五) 通道之间的数据传输
在Java NIO中,如果两个通道中有一个是FileChannel,那你可以直接将数据从一个channel(译者注:channel中文常译作通道)传输到另外一个channel。 transferFrom() FileChannel的transferFrom()方法可以将数据从源通道传输到FileChannel中(译者注:这个方法在JDK文档中的解释为将字节从给定的可读取字节通道传输到此原创 2014-06-16 21:38:33 · 340 阅读 · 0 评论 -
(十) Java NIO DatagramChannel
Java NIO中的DatagramChannel是一个能收发UDP包的通道。因为UDP是无连接的网络协议,所以不能像其它通道那样读取和写入。它发送和接收的是数据包。 打开 DatagramChannel 下面是 DatagramChannel 的打开方式: 1 DatagramChannel channel = DatagramChan原创 2014-06-16 21:42:44 · 299 阅读 · 0 评论 -
【Java TCP/IP Socket】Java NIO Socket VS 标准IO Socket
简介 Java NIO从JDK1.4引入,它提供了与标准IO完全不同的工作方式。 NIO包(java.nio.*)引入了四个关键的抽象数据类型,它们共同解决传统的I/O类中的一些问题。 1、 Buffer:它是包含数据且用于读写的线形表结构。其中还提供了一个特殊类用于内存映射文件的I/O操作。 2、 Charset:它提供Unicode字符串影射到字节序列转载 2014-06-16 22:25:25 · 260 阅读 · 0 评论 -
在NIO中如何循环将Channel的数据写到Buffer中??
下面这个例子用FileChannel作为IO操作者(当然你也可以用SocketChannel)原创 2014-06-16 19:53:36 · 298 阅读 · 0 评论 -
图文并茂,快速复习NIO
·Channel和Buffer的关系 ·原创 2014-06-20 16:48:22 · 340 阅读 · 0 评论 -
(二)Java NIO Channel
Java NIO的通道类似流,但又有些不同: 既可以从通道中读取数据,又可以写数据到通道。但流的读写通常是单向的。通道可以异步地读写。通道中的数据总是要先读到一个Buffer,或者总是要从一个Buffer中写入。 正如上面所说,从通道读取数据到缓冲区,从缓冲区写入数据到通道。如下图所示: Channel的实现 这些是Java NIO中最重要的通道的实现:原创 2014-06-16 20:46:28 · 294 阅读 · 0 评论 -
【Java TCP/IP Socket】TCP Socket(含代码)
TCP的Java支持 协议相当于相互通信的程序间达成的一种约定,它规定了分组报文的结构、交换方式、包含的意义以及怎样对报文所包含的信息进行解析,TCP/IP协议族有IP协议、TCP协议和UDP协议。现在TCP/IP协议族中的主要socket类型为流套接字(使用TCP协议)和数据报套接字(使用UDP协议)。 TCP协议提供面向连接的服务,通过它建立的是可靠地连接。Jav转载 2014-06-16 20:01:07 · 263 阅读 · 0 评论 -
练手AIO
异步accept: ·server.accept(null,new AcceptCompletionHandler()); ·public void completed(AsynchronousSocketChannel result, Object attachment) { try { //使用系统回调的AsynchronousSocketChannel ,这里用它读原创 2014-06-18 20:45:16 · 333 阅读 · 0 评论 -
(九) ServerSocketChannel
Java NIO中的 ServerSocketChannel 是一个可以监听新进来的TCP连接的通道, 就像标准IO中的ServerSocket一样。ServerSocketChannel类在 java.nio.channels包中。 这里有个例子: 01 ServerSocketChannel serverSocketChannel = Serv原创 2014-06-16 21:41:46 · 297 阅读 · 0 评论 -
(一)Java NIO概述
Java NIO 由以下几个核心部分组成: ChannelsBuffersSelectors 虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组件上。其它组件会在单独的章节中讲到。原创 2014-06-16 20:25:02 · 297 阅读 · 0 评论 -
(七) FileChannel
Java NIO中的FileChannel是一个连接到文件的通道。可以通过文件通道读写文件。 FileChannel无法设置为非阻塞模式,它总是运行在阻塞模式下。 打开FileChannel 在使用FileChannel之前,必须先打开它。但是,我们无法直接打开一个FileChannel,需要通过使用一个InputStream、OutputStream或RandomAcc原创 2014-06-16 21:40:19 · 330 阅读 · 0 评论 -
【Java TCP/IP Socket】UDP Socket(含代码)
UDP的Java支持 UDP协议提供的服务不同于TCP协议的端到端服务,它是面向非连接的,属不可靠协议,UDP套接字在使用前不需要进行连接。实际上,UDP协议只实现了两个功能: 1)在IP协议的基础上添加了端口; 2)对传输过程中可能产生的数据错误进行了检测,并抛弃已经损坏的数据。 Java通过DatagramPacket类和Da转载 2014-06-16 22:26:27 · 327 阅读 · 0 评论 -
Java NIO系列实用教程目录索引
为了对NIO可以温故而知新,原创 2014-06-18 20:00:50 · 329 阅读 · 0 评论