java 通信
文章平均质量分 88
Coding-lover
Keep hungry,Keep foolish(可通过微信联系我:unilay_yang)
展开
-
java I/O流常用代码
文件的复制:需求:将C盘下的一个文本文件复制到D盘下。(其实就是将C盘下的文件数据存储到D盘下的一个文件中)步骤:1.在D盘中创建一个文件,用于存储C盘文件中的数据。2.定义读取流和C盘文件关联3.通过不断的读写完成数据存储。4.关闭资源。示例代码:转载 2014-09-17 20:53:51 · 733 阅读 · 0 评论 -
java ServerSocket 用法详解(二)
在ThreadPool 类中定义了一个LinkedList 类型的 workQueue 成员变量, 它表示工作队列, 用来存放线程池要执行的任务, 每个任务都是 Runnable 实例. ThreadPool 类的客户程序(利用 ThreadPool 来执行任务的程序) 只要调用 ThreadPool 类的execute(Runnable task) 方法, 就能向线程池提交任务. 在 Thr转载 2015-03-07 22:02:13 · 748 阅读 · 0 评论 -
java UDP协议程序设计
UDP协议的简介UDP协议是一种面向无连接不可靠的协议,也就是在进行数据通讯之前发送端和接收端无需进行连接,发送端要发送数据,只需构造数据报,并将接收端的地址放入数据报中,然后将其发送出去就可以了.该协议是一种不可靠的协议,因为收发放没有连接过程, 发送出去的数据有可能中途丢失,并且发送端还得不到反馈.所以在实现UDP协议的程序中,最关键是如何实现UDP的数据报.J原创 2014-04-14 14:49:56 · 1283 阅读 · 0 评论 -
java HttpClient学习整理
HttpClient简介HttpClient 功能介绍 1. 读取网页(HTTP/HTTPS)内容 2、使用POST方式提交数据(httpClient3) 3. 处理页面重定向 4. 模拟登录开心网 5. 提交XML格式参数 6. 访问启用认证的页面 7. 多线程模式下使用httpclienthttpClient完转载 2014-11-30 22:58:51 · 1864 阅读 · 0 评论 -
java TCP协议程序设计
网络编程基本概念:网络通信要素地址:与网络上哪台计算机通信端口:与计算机上的哪个网络应用程序通信协议:采用什么规则进行通信JAVA的网络编程方法:Java.net的包提供相应的类与方法地址:获得要通信的网络计算机地址代表IP地址的InetAddress类端口:获得要通信网络应用程序0-65535的端口号,1024以下的保留协议:采用某原创 2014-04-13 09:42:46 · 1343 阅读 · 0 评论 -
java IO包装流如何关闭?
问题:(1)JAVA的IO流使用了装饰模式,关闭最外面的流的时候会自动调用被包装的流的close()方吗?(2)如果按顺序关闭流,是从内层流到外层流关闭还是从外层到内存关闭? 问题(1)解释:如下例子代码: FileInputStream is = new FileInputStream("."); BufferedInputStream转载 2015-03-07 23:14:16 · 1663 阅读 · 0 评论 -
java Socket用法详解
本篇文章观点和例子来自 《Java网络编程精解》, 作者为孙卫琴, 出版社为电子工业出版社。 在客户/服务器通信模式中, 客户端需要主动创建与服务器连接的 Socket(套接字), 服务器端收到了客户端的连接请求, 也会创建与客户连接的 Socket. Socket可看做是通信连接两端的收发器, 服务器与客户端都通过 Socket 来收发数据. 这篇文章转载 2015-03-07 18:23:22 · 639 阅读 · 0 评论 -
java nio 内存映射文件原理与DirectMemory
JAVA NIO之浅谈内存映射文件原理与DirectMemoryJAVA类库中的NIO包相对于IO 包来说有一个新功能是内存映射文件,日常编程中并不是经常用到,但是在处理大文件时是比较理想的提高效率的手段。本文我主要想结合操作系统中(OS)相关方面的知识介绍一下原理。 在传统的文件IO操作中,我们都是调用操作系统提供的底层标准IO系统调用函数 read()、write() ,转载 2015-03-12 00:33:40 · 841 阅读 · 0 评论 -
java nio 使用内存映射文件实现进程间通信
一看到 Java NIO 的内存映射文件(MappedByteBuffer),让我立即就联想到 Windows 系统的内存映射文件。Windows 系统的内存映射文件能用来在多个进程间共享数据,即进程间的共享内存,是通过把同一块内存区域映射到不同进程的地址空间中,从而达到共享内存。 Java NIO 的内存映射文件和 Windows 系统下的一样,都能把物理文件的内容映射到内存中,那么 M转载 2015-03-12 21:32:39 · 1079 阅读 · 0 评论 -
java I/O 操作及优化建议
本文首先对 I/O 与 NIO 进行了对比,然后通过若干实例介绍了 I/O 的操作方式,包括传统 I/O、基于缓存的 I/O 等,最后又介绍了 JDK7 推出的 AIO。通过这篇文章,让读者对 Java I/O 处理方式有一个大概的了解,后续会对 I/O 方式的源代码进行解释。Java I/OI/O,即 Input/Output(输入/输出) 的简称。就 I/O 而言,概念上有 5 种模型:bloc转载 2015-06-03 14:48:50 · 736 阅读 · 0 评论 -
java I/O底层是如何工作的?
本博文主要讨论I/O在底层是如何工作的。本文服务的读者,迫切希望了解Java I/O操作是在机器层面如何进行映射,以及应用运行时硬件都做了什么。假定你熟悉基本的I/O操作,比如通过Java I/O API读写文件。这些内容不在本文的讨论范围。缓存处理和内核vs用户空间缓冲与缓冲的处理方式,是所有I/O操作的基础。术语“输入、输出”只对数据移入和移出缓存有意义。任何时候都要把它记在心中。通常,进程执行转载 2015-06-06 15:11:43 · 944 阅读 · 0 评论 -
java IO简介及演变的历史
IO简介Java中所有的类都继承自Object类,所以各种IO类也不例外。InputStream和OutputStream类操作字节数据。Reader和Writer类工作在字符是上。File类为无论文件提供接口。Java SE 7 引入了java.nio.file.Path类,在新的API中,java.nio.file.Path被认为是java.io.File的替代品,并且提供了更复杂的功能。IO类转载 2015-07-10 14:40:06 · 1468 阅读 · 1 评论 -
java 深入解析FileInputStream和FileOutputStream
FileInputStream和FileOutputStream类属于字节类,可以操作任意类型的文件。在数据流的处理过程中,有两种情况。 (1)以单个字节的形式读写文件 (2)以数据块的形式读写文件 从JDK的源码中,我们可以看出来: FileInputStream的读:public native int read() throws IOException;private native i转载 2015-08-07 20:17:37 · 730 阅读 · 0 评论 -
java 心跳机制
什么是心跳包? 心跳包就是在客户端和服务器间定时通知对方自己状态的一个自己定义的命令字,按照一定的时间间隔发送,类似于心跳,所以叫做心跳包。 用来判断对方(设备,进程或其它网元)是否正常运行,采用定时发送简单的通讯包,如果在指定时间段内未收到对方响应,则判断对方已经离线。用于检测TCP的异常断开。基本原因是服务器端不能有效的判断客户端是否在线,也就是说,服务器无法区分客户端转载 2015-09-28 20:20:13 · 11510 阅读 · 0 评论 -
java 浅析I/O模型
一.什么是同步?什么是异步? 同步和异步的概念出来已经很久了,网上有关同步和异步的说法也有很多。以下是我个人的理解: 同步就是:如果有多个任务或者事件要发生,这些任务或者事件必须逐个地进行,一个事件或者任务的执行会导致整个流程的暂时等待,这些事件没有办法并发地执行; 异步就是:如果有多个任务或者事件发生,这些事件可以并发地执行,一个事件或者任务的执行不会导致整个流程的暂时等待。 这就是同步和转载 2015-11-29 12:21:00 · 788 阅读 · 0 评论 -
一个故事讲清楚NIO
假设某银行只有10个职员。该银行的业务流程分为以下4个步骤:1) 顾客填申请表(5分钟);2) 职员审核(1分钟);3) 职员叫保安去金库取钱(3分钟);4) 职员打印票据,并将钱和票据返回给顾客(1分钟)。我们看看银行不同的工作方式对其工作效率到底有何影响。1 BIO方式每来一个顾客,马上由一位职员来接待处理,并且这个职员需要负责以上4个完整流程。当超过10个顾客时,剩余的顾客需要排队等候。我们算转载 2016-02-03 11:15:35 · 827 阅读 · 0 评论 -
java ServerSocket 用法详解(一)
本篇文章观点和例子来自 《Java网络编程精解》, 作者为孙卫琴, 出版社为电子工业出版社。 在客户/服务器通信模式中, 服务器端需要创建监听端口的 ServerSocket, ServerSocket 负责接收客户连接请求. 本章首先介绍 ServerSocket 类的各个构造方法, 以及成员的用法, 接着介绍服务器如何用多线程来处理与多个客户的通信任务.转载 2015-03-07 21:49:44 · 5733 阅读 · 0 评论 -
I/O 设计模式 Reactor 和 Proactor
前言 网络服务在处理数以万计的客户端连接时,往往出现效率低下甚至完全瘫痪,这被 称为 C10K 问题。C10K问题最早提出于2003年,10多年间,随着互联网的迅速发展,越来越多的网络服务面临的不再是C10K问题,而是C10M问题!典型的多线程服务器的线程模型 1. 每个请求创建一个线程,使用阻塞式 I/O 操作 这是最简单的线程模型,转载 2015-03-15 18:47:00 · 1551 阅读 · 0 评论 -
java NIO 入门
JDK 1.4 中引入的新输入输出 (NIO) 库在标准 Java 代码中提供了高速的、面向块的 I/O。本实用教程从高级概念到底层的编程细节,非常详细地介绍了 NIO 库。您将学到诸如缓冲区和通道这样的关键 I/O 元素的知识,并考察更新后的库中的标准 I/O 是如何工作的。您还将了解只能通过 NIO 来完成的工作,如异步 I/O 和直接缓冲区。在开始之前关于本教程转载 2015-03-15 10:33:48 · 626 阅读 · 0 评论 -
java I/O 的工作机制
I/O 问题可以说是当今互联网 Web 应用中所面临的主要问题之一,因为当前在这个海量数据时代,数据在网络中随处流动。这个流动的过程中都涉及到 I/O 问题,可以说大部分 Web 应用系统的瓶颈都是 I/O 瓶颈。本文的目的正是分析 I/O 的内在工作机制,你将了解到:Java 的 I/O 类库的基本架构;磁盘 I/O 工作机制;网络 I/O 的工作机制;其中以网络 I/O 为重点介绍 Jav转载 2014-10-25 21:18:41 · 908 阅读 · 0 评论 -
java 在JS中的编码问题
在当前的web应用中,js操作页面元素的情况越来越多,尤其是通过js发起异步请求时遇到编码问题的情况经常出现。下面介绍在js中出现编码问题的几种情况。1.外部引入js文件 在一个单独的js文件中包含字符串输入的情况,如: 如果引入一个script.js脚本,这个脚本中有如下代码: document.wr原创 2014-10-26 16:56:52 · 1874 阅读 · 0 评论 -
java 字符,字节和编码
字符,字节和编码[原创文章,转载请保留或注明出处:http://www.regexlab.com/zh/encoding.htm]级别:中级摘要:本文介绍了字符与编码的发展过程,相关概念的正确理解。举例说明了一些实际应用中,编码的实现方法。然后,本文讲述了通常对字符与编码的几种误解,由于这些误解而导致乱码产生的原因,以及消除乱码的办法。本文的内容涵盖了“中文问题”,“乱转载 2014-09-18 21:00:54 · 1134 阅读 · 0 评论 -
java NIO详解
Java NIO 概述Java NIO 由以下几个核心部分组成:ChannelsBuffersSelectors虽然Java NIO 中除此之外还有很多类和组件,但在我看来,Channel,Buffer 和 Selector 构成了核心的API。其它组件,如Pipe和FileLock,只不过是与三个核心组件共同使用的工具类。因此,在概述中我将集中在这三个组件上。其它组件转载 2014-10-25 19:26:01 · 841 阅读 · 0 评论 -
java IO流案例详解
流的概念和作用学习Java IO,不得不提到的就是JavaIO流。流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类根据处理数据类型的不同分为:字符流和字节流根据数据流向不同分为:输入流和输出流字符流和字节流转载 2014-09-18 17:38:52 · 3601 阅读 · 1 评论 -
java I/O流
Java I/O流简介:为使程序设计简单明了,Java把程序的输入\输出抽象为流(Stream),而其中输入或输出的数据称为数据流.简单地说:流就是指在计算机与输入\输出之间流动的数据序列.序列中的数据可以是二进制数据,也可以是其他符合某种格式规定的特定数据,如字符流等。按照数据的流动方向: 输入流 输出流按照处理数据的类型: 字节流 字符流按照流是否直接原创 2014-04-09 11:26:26 · 2464 阅读 · 2 评论 -
java 中文编码问题
几种常见的编码格式为什么要编码不知道大家有没有想过一个问题,那就是为什么要编码?我们能不能不编码?要回答这个问题必须要回到计算机是如何表示我们人类能够理解的符号的,这些符号也就是我们人类使用的语言。由于人类的语言有太多,因而表示这些语言的符号太多,无法用计算机中一个基本的存储单元—— byte 来表示,因而必须要经过拆分或一些翻译工作,才能让计算机能理解。我们可以把计算机能够理解的转载 2014-10-26 13:05:52 · 685 阅读 · 0 评论 -
java IO读写大文件的几种方式及测试
读取文件大小:1.45G 第一种,OldIO: public static void oldIOReadFile() throws IOException{ BufferedReader br = new BufferedReader(new FileReader("G://lily_947.txt")); PrintWriter pw = new PrintWri转载 2015-03-14 22:13:26 · 895 阅读 · 0 评论 -
java 进程通信方式
进程间通信IPC------Inter-Process Communication 由于内存管理的一些机制,导致两个进程间并不能直接的进行通信(在独立的用户空间),因此我们需要利用一些介质来完成两个进程之间的通信。以下是常用的进程间通信方式。# 管道( pipe ):管道是一种半双工的通信方式,数据只能单向流动,而且只能在具有亲缘关系的进程间使用。进程的亲缘关系通常是指父子进程关系。#转载 2015-03-14 22:40:05 · 850 阅读 · 0 评论 -
java NIO工作机制
在开始之前关于本教程新的输入/输出 (NIO) 库是在 JDK 1.4 中引入的。NIO 弥补了原来的 I/O 的不足,它在标准 Java 代码中提供了高速的、面向块的 I/O。通过定义包含数据的类,以及通过以块的形式处理这些数据,NIO 不用使用本机代码就可以利用低级优化,这是原来的 I/O 包所无法做到的。在本教程中,我们将讨论 NIO 库的几乎所有方面,从高级的概念性转载 2014-10-25 23:52:28 · 857 阅读 · 0 评论 -
java IO流代码书写步骤
1.掌握流的概念2.掌握字节流与字符流的作用3.掌握文件的标准操作步骤4.掌握字节与字符操作的区别1、流的概念程序中的输入输出都是以流的形式保存的,流中保存的实际上全都是字节文件。2、字节流与字符流内容操作就四个类:OutputStream、InputStream、writer、Rader使用转载 2014-09-17 20:12:08 · 3857 阅读 · 0 评论 -
java nio使用
最近由于工作关系要做一些Java方面的开发,其中最重要的一块就是Java NIO(New I/O),尽管很早以前了解过一些,但并没有认真去看过它的实现原理,也没有机会在工作中使用,这次也好重新研究一下,顺便写点东西,就当是自己学习 Java NIO的笔记了。本文为NIO使用及原理分析的第一篇,将会介绍NIO中几个重要的概念。在Java1.4之前的I/O系统中,提供的都是面向流的I/O系统,转载 2015-03-15 12:09:38 · 742 阅读 · 0 评论 -
java aio 入门
异步通道 提供支持连接、读取、以及写入之类非锁定操作的连接,并提供对已启动操作的控制机制。Java 7 中用于 Java Platform(NIO.2)的 More New I/O APIs,通过在 java.nio.channels 包中增加四个异步通道,从而增强了 Java 1.4 中的 New I/O APIs(NIO):AsynchronousSocketChannel转载 2015-03-15 22:22:57 · 1425 阅读 · 0 评论 -
Java BIO、NIO、AIO区别与应用
先来个例子理解一下概念,以银行取款为例:同步 : 自己亲自出马持银行卡到银行取钱(使用同步IO时,Java自己处理IO读写)。异步 :委托一小弟拿银行卡到银行取钱,然后给你(使用异步IO时,Java将IO读写委托给OS处理,需要将数据缓冲区地址和大小传给OS(银行卡和密码),OS需要支持异步IO操作API)。阻塞 : ATM排队取款,你只能等待(使用阻塞IO时,Java调用会一直阻塞到读写完成转载 2015-03-15 23:01:59 · 744 阅读 · 0 评论 -
java IO模型
一、 IO模型所谓IO,就是计算机的输入输出系统,大多IO都会和硬件打交道,比如内存、硬盘、光驱等。由于要操作硬件,IO一般都比较耗时,所以操作系统都支持同步和异步两种IO方式,同步IO就是要等到操作完成才继续执行,而异步IO不需要等待。异步IO在各操作系统上的实现方式也不太一样,以下列举出windows和linux操作系统上的异步IO模型。1、Windows转载 2015-03-15 13:39:07 · 838 阅读 · 0 评论 -
Java NIO 原理图文分析及代码实现
import java.io.IOException;import java.net.InetSocketAddress;import java.net.ServerSocket;import java.nio.ByteBuffer;import java.nio.channels.SelectionKey;import java.nio.channels.Selector;impor转载 2014-10-25 23:57:11 · 685 阅读 · 0 评论 -
IO - 同步,异步,阻塞,非阻塞
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2015-03-08 15:05:34 · 635 阅读 · 0 评论