摘要:基于TCP协议的网络编程学习笔记(2)(二)非阻塞式的Scoket通信 从JDK1.4开始,JAVA提供的NIO API来开发高性能网络服务器,前面介绍的网络通信程序是基于阻塞式API的----即当程序执行输入、输出操作后,在这些操作返回之前会一直阻塞该线程,所以服务器必须为每个客户端提供一条独立线程进行处理,当服务器需要同时处理大量客户端时,这种做法会导致性能下降.使用NIO API则可以让服务器使用一个或几个线程来同时处理连接到服务器上的所有客户端。JAVA的NIO为非阻塞式的Socket通信提供了如下几个特殊类:Selector:它是SelectableChannel对象的多路复用器,. 阅读全文
基于TCP协议的网络编程学习笔记(1)
2014-04-01 23:14 by fuimaz, 170 阅读, 0 推荐, 收藏,
摘要:基于TCP协议的网络编程学习笔记(1) TCP/IP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket ,从而在通信的两端之间形成网络虚拟链路。一旦建立了虚拟的网络链路,两端的程序就可以通过虚拟链路进行通信。 JAVA对基于TCP/IP协议的网络通信提供了良好的封装。java使用Socket对象来代表两端的通信端口,并通过Socket产生IO流来进行网络通信.(一)阻塞式的Scoket通信(1)使用ServletSocket创建TCP服务器 TCP通信的两个实体之间并没有服务器,客户端之分,但那是两个通信实体已经建立虚拟链路之后。。在两个通信实体没有建立虚拟链路之前,必须有.. 阅读全文
JAVA新I/O学习系列笔记(2)
2014-04-01 23:08 by fuimaz, 220 阅读, 0 推荐, 收藏,
摘要:JAVA新I/O学习系列笔记(2)(二)使用 ChannelChannel类似于传统的流对象,但与传统的流不同的是,Channel有两个主要的区别(1)Channel可以直接将指定的文件的部分或全部直接映射成Buffer(2)程序不能直接访问Channel中的数据,包括读、写都不行,Channel只能与Buffer进行交互。也就是说,如果要从Channel中取得数据,必须先用Buffer从Channel中取出一些数据,然后让程序从Buffer中取出这些数据。如果要将程序中的数据写入Channel,一样先让程序将数据放入Buffer中,程序再将Buffer里的输入写入Channel中. Cha. 阅读全文
JAVA新I/O学习系列笔记(1)
2014-04-01 23:05 by fuimaz, 215 阅读, 0 推荐, 收藏,
摘要:JAVA新I/O学习系列笔记(1) 在JDK1.4以前,I/O输入输出处理,我们把它称为旧I/O处理,在JDK1.4开始,java提供了一系列改进的输入/输出新特性,这些功能被称为新I/O(NEW I/O),新添了许多用于处理输入/输出的类,这些类都被放在java.nio包及子包下,并且对原java.io包中的很多类以NIO为基础进行了改写,新添了满足新I/O的功能。 旧I/O中,java.io包中的类,如BufferedReader读取输入流中的数据时,如果没有读到有效数据时,程序将在此处阻塞该线程的执行(InputStream中的read方法也是如此),简单一点说,旧的i/o流,是属于.. 阅读全文
浙公网安备 33010602011771号