NIO网络编程
文章平均质量分 87
wjp553650958
这个作者很懒,什么都没留下…
展开
-
基于NIO实现非阻塞Socket编程
一、 描述Java 提供的 NIO API 来开发高性能网络服务器, JDK 1.4 以前 的网络通信程序是基于阻塞式 API 的——即当程序执行输入、输出操作后,在这些操作返回之前会一直阻塞该线程,所以服务器必须为每个客户端都提供一条独立线程进行处理,当服务器需要同时处理大量客户端时,这种做法会导致性能下降。使用 NIO API 则可以让服务器使用一个或有限几个线程来同时处理连接到服务原创 2009-08-30 11:43:00 · 767 阅读 · 0 评论 -
Apache MINA 快速入门指南-时间服务器
最近用到Socket套接字编程,在服务器监听方面还没有具体思路,朋友推荐了Apahce Mina,就在官方看了一下快速入门文档。原文是英文的,学习之余就将它翻译出来和大家共享!关于Mina的中文简介内容不多就摘抄了一些。 “MINA是一个Socket的网络框架,但是它提供了方便的Protocol支持,通过它的Encoder和Decoder,你将你的应用可以方便的扩展并支持各种基于S原创 2009-09-11 15:25:00 · 1607 阅读 · 0 评论 -
Apache MINA 应用进阶
1。MINA 框架简介下图为本人根据对MINA的简要理解,所画出来的框架简图:当客户首次访问采用MINA编写的程序时,IoAcceptor作为线程运行,负责接受来自客户的请求。当有客户请求连接时,创建一个Session,该Session与IoProcessor、SocketChannel以及IOService联系起来。IoProcessor也作为另外一个线程运行,定时检查客户是原创 2009-09-11 15:23:00 · 657 阅读 · 0 评论 -
udp与tcp编程区别
127.0.0.1是回路地址,用于测试,相当于localhost本机地址,没有网卡,不设DNS都可以访问.端口地址在0~65535之间,其中0~1023之间的端口是用于一些知名的网络服务和应用,用户的普通网络应用程序应该使用1024以上的端口.网络应用中基本上都是TCP(Transmission Control Protocol传输控制协议)和UDP(User Datagram Proto原创 2009-09-08 22:16:00 · 769 阅读 · 1 评论 -
JAVA实现DES加密和解密软件
软件功能: 使用DES加密和解密技术对文件进行操作。软件优点: 一、可以同时对多个文件进行操作,加密解密互不干扰,但加密解密不应该对同一文件操作;二、该软件注重人性化,每话个错误操作都有详细的提示信息;三、经过测试,该软件可以对600M以及以上大小的文件进行加密解密;四、多文件同时加密解密时,从总的信息面板中可以看到结果信息。五、加密过的文件不能重复加密,系统会自动抱错,同样没有加密过的文件不能被原创 2009-09-03 17:39:00 · 489 阅读 · 0 评论 -
JAVA实现HTTP代理上网的测试程序
一、实验环境: 编程语言:Java1.5(运行在JVM(Java Virsual Machine))开发工具:eclipce3.2测试环境:局域网二、需求分析:随着Internet技术的迅速发展,越来越多的计算机连入了Internet,出现了IP地址不足的现象.在这种情况下,代理服务器便应运而生了.三、HTTP Proxy的实现代码:/** * 本程序实现简原创 2009-09-03 17:11:00 · 950 阅读 · 0 评论 -
JAVA实现多任务下载程序
一、实验环境 编程语言:Java1.5(运行在JVM(Java Virsual Machine))开发工具:eclipce3.2测试环境:互联网实现二、多任务下载工具编程的实现:/** * 本程序实现多文件的同时下载; * 步骤: * 1、利用java.net包中的URL类生成urlCon对象进行网络文件的连接; * 2、利用urlCon.原创 2009-09-03 17:02:00 · 1306 阅读 · 2 评论 -
JAVA实现UDP组播聊天程序
一、实验环境 编程语言:Java1.5(运行在JVM(Java Virsual Machine))开发工具:eclipce3.2测试环境:局域网二、实验目的社会已经进入信息时代,网络技术在飞速发展.大量应用都依赖于从一个主机向多个主机或者从多个主机向多个主机发送同一信息的能力,在Internet上分布的数目可能达数十万台,这些都需要更高的带宽,并且大大超出原创 2009-09-03 15:22:00 · 1461 阅读 · 0 评论 -
使用非阻塞I/O技术实现多用户聊天 客户端程序
import java.net.*;import java.nio.*;import java.nio.channels.*;import java.nio.charset.*;import java.awt.*;import java.awt.event.*;public class ChatClient { private SocketChannel sc = null; private原创 2009-09-01 17:14:00 · 643 阅读 · 0 评论 -
使用非阻塞I/O技术实现多用户聊天 服务器端程序
import java.io.*;import java.nio.*;import java.nio.channels.*;import java.nio.charset.*;import java.net.*;import java.util.*;public class ChatServer{ private Selector selector = null; private原创 2009-09-01 17:10:00 · 651 阅读 · 0 评论 -
Mina框架中的filter (一)解码器
package com.tianze.jmsn.gps;//import org.apache.log4j.Logger;import org.apache.log4j.Logger;import org.apache.mina.common.ByteBuffer;import org.apache.mina.common.IoSession;import org.apache.mina原创 2009-08-31 15:29:00 · 1598 阅读 · 0 评论 -
Mina框架中的filter (一)编码器
package com.tianze.jmsn.gps;import java.util.Collections;import java.util.HashSet;import java.util.Set;import org.apache.mina.common.ByteBuffer;import org.apache.mina.common.IoSession;import org.ap原创 2009-08-31 15:35:00 · 1057 阅读 · 0 评论 -
NIO编码和解码
Charset:nio流 传输的内容 要求是 字节 , 字符是不行的 ,字符串当然也不行 ,所以传输的过程中需要字符转化。通常定义一个方法 : 把传输过去的 ByteBuffer 转化成字符串 。 /***************************** 转码 ********************************/ /* * To change this tem原创 2009-08-30 15:41:00 · 611 阅读 · 0 评论 -
NIO编程
Java NIO非堵塞应用通常适用用在I/O读写等方面,我们知道,系统运行的性能瓶颈通常在I/O读写,包括对端口 和文件的操作上,过去,在打开一个I/O通道后,read()将一直等待在端口一边读取字节内容,如果没有内容进来,read()也是傻傻的等,这会影响 我们程序继续做其他事情,那么改进做法就是开设线程,让线程去等待,但是这样做也是相当耗费资源的。Java NIO非堵塞技术实际是采取Re原创 2009-08-30 15:40:00 · 457 阅读 · 0 评论 -
NIO Api详解
Java NIO API详解Java NIO API详解在JDK 1.4以前,Java的IO操作集中在java.io这个包中,是基于流的阻塞(blocking)API。对于大多数应用来说,这样的API使用很方便,然而,一些对性能要求较高的应用,尤其是服务端应用,往往需要一个更为有效的方式来处理IO。从JDK 1.4起,NIO API作为一个基于缓冲区,并能提供非阻塞(non-blocking)I原创 2009-08-30 15:39:00 · 550 阅读 · 0 评论 -
使用Java NIO编写高性能的服务器 文件下载(2)
下面是客户端请求的代码,也比较简单,模拟100个用户同时下载文件。package nio.file;import java.io.IOException;import java.net.InetSocketAddress;import java.nio.ByteBuffer;import java.nio.CharBuffer;import java.nio.channe原创 2009-08-30 11:46:00 · 489 阅读 · 0 评论 -
使用Java NIO编写高性能的服务器 文件下载(1)
从JDK 1.4开始,Java的标准库中就包含了NIO,即所谓的“New IO”。其中最重要的功能就是提供了“非阻塞”的IO,当然包括了Socket。NonBlocking的IO就是对select(Unix平台下)以及WaitForMultipleObjects(Windows平台)的封装,提供了高性能、易伸缩的服务架构。话说回来,传统的Server/Client实现是基于Thread原创 2009-08-30 11:45:00 · 628 阅读 · 0 评论 -
深入理解Apache Mina(5)---- 配置Mina的 线程模型
在Mina的使用中,线程池的配置一个比较关键的环节,同时它也是Mina性能提高的一个有效的方法,在Mina的2.0以上版本中已经不再需要对Mina线程池的配置了,本系列文章都是基于当前的稳定版本Mina 1.1.7版来进行讲述的,Mina的2.0以上版本现在还都是M(millestone,即里程碑)版的,在1.5版本上2.0M版为稳定版本,但是在1.5+以上则为非稳定版本,所以,为了更好的进行讨论原创 2009-09-17 11:20:00 · 1123 阅读 · 0 评论