`
962685987962685987
  • 浏览: 4916 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
文章列表
如果将同步 I/O方式下的数据传输比做数据传输的零星方式(这里的零星是指在数据传输的过程中是以零星的字节方式进行的),那么就可以将非阻塞 I/O方 式下的数据传输比做数据传输的集装箱方式(在字节和低层数据传输之间,多了一层缓冲区,因此,可以将缓冲区看做是装载字节的集装箱)。大家可以想象,如果 我们要运送比较少的货物,用集装箱好象有点不太合算,而如果要运送上百吨的货物,用集装箱来运送的成本会更低。在数据传输过程中也是一样,如果数据量很小 时,使用同步 I/O方式会更适合,如果数据量很大时(一般以 G为单位),使用非阻塞 I/O方式的效率会更高。因此,从理论上说,数据量越大,使 ...
在网络应用中,一般可以采用同步 I/O(阻塞 I/O)和非阻塞 I/O两种方式进行数据通讯。这两种方式并非互相排斥和互相取代。我们可以在平时的应用中单独采用其中一种通讯方式,也可以混合使用这两种通讯方式。在本文中就什么是非阻塞 I/O以及为什么要使用这种通讯方式进行了介绍,在下一篇文章中给出了一个简单的例子来演示在网络应用中如何使用非阻塞 I/O进行通讯。 一、 什么是非阻塞 I/O 我们可以将同步 I/O称为阻塞 I/O,非阻塞 I/O称为异步 I/O。在本书中采用了比较常用的叫法:同步 I/O和非阻塞 I/O。虽然它们的叫法不同,但含 ...
最近学习java编程是一个实验让我困惑了很久就是: 编写实现类似FTP功能的程序,客户程序向服务器发送字符串”ls”,服务器返回几个文件名,客户程序从中选择一个文件,服务器将该文件发送给客户端,客户程序接受该文件并保存在本地硬盘中。(说明:不要求采用FTP协议实现) 下面把代码贴出来,可以实现文件传送, 传送文件中,服务器端吧文件对象内容写到byte数组中然后由socket发送 接收端主要也是读getinputstream然后保存到byte数组中,在写入到文件中 客户端程序: package conan; ...
在Socket类中有很多方法在声明时使用throws抛出了一些异常,这些异常都是 IOException的子类。在Socket类的方法中抛出最多的就是SocketException,其余还有七个异常可供Socket类的方法抛 出。这些异常的继承关系如图1所示。其中灰色背景框所描述的例外就是Socket类的方法可能抛出的异常。 图1  异常类继承关系图 public class IOException extends Exception    这个异常是所有在Socket类的方法中抛出的异常的父类。因此,在使用Socket类时只要捕捉(catch)这个异常就可以了 ...
在讨论HTTP协议的具体请求和响应头字段之前,让我们先来利用以前所学的知识来实现一个HTTP模拟器。所谓HTTP模拟器就是可以在用户输入HTTP 的请求消息后,由这个模拟器将HTTP请求发送给相应的服务器,再接收服务器的响应消息。这个HTTP模拟器有几下特点: 1.  可以手工输入HTTP请求,并向服务器发送。 2.  接收服务器的响应消息。 3.  消息头和实体内容分段显示,也就是说,并不是象Telnet等客户端一样将HTTP响 应消息全部显示,而是先显示消息头,然后由用户决定是否显示实体内容。 4.  集中发送请求。这个HTTP模拟器和Teln ...
Global site tag (gtag.js) - Google Analytics