- 浏览: 716958 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (389)
- flex (150)
- java (55)
- flex_sharedObject (4)
- iphone/android (7)
- red5 (4)
- blazeds (19)
- ajax (3)
- flex&java (9)
- 聊天室 (2)
- flex的问题 (1)
- game (8)
- flex_xml (1)
- flex组件学习 (2)
- JGroups (1)
- 中转站 (2)
- ruby (7)
- flex_js (5)
- C/C++ (14)
- perl (2)
- db (13)
- air (10)
- hibernate (8)
- flash_flex_as_3d (2)
- struts (4)
- dwr (8)
- freemarker (2)
- AS (22)
- 工具 (6)
- js_jquery_ext_yui (4)
- .net (1)
- C# (1)
- 前端 (1)
最新评论
-
136900923:
您好,您的代码我不是很懂,我想跟您交流一下,我的qq邮箱:13 ...
hibernate做无限极菜单树如此简单 -
fykyx521:
两个同一个功能
flex_flush_Socket 安全沙箱解决 -
ustb:
你上下两个代码类之间没关系
flex_flush_Socket 安全沙箱解决 -
u010656335:
...
flex发送QQ表情 -
u010656335:
flex发送QQ表情
http://topic.csdn.net/u/20090223/01/5a8b1312-647c-4b0e-a988-37be86fab317.html
无阻塞sock编程,可以用nio啊 给个实例
import java.io.*; //引入Java.io包 import java.net.*; //引入Java.net包 import java.nio.channels.*; //引入Java.nio.channels包 import java.util.*; //引入Java.util包 public class TestServer implements Runnable { /** * 服务器Channel对象,负责接受用户连接 */ private ServerSocketChannel server; /** * Selector对象,负责监控所有的连接到服务器的网络事件的发生 */ private Selector selector; /** * 总的活动连接数 */ private int activeSockets; /** * 服务器Channel绑定的端口号 */ private int port ; /** * * 构造函数 */ public TestServer()throws IOException { activeSockets=0; port=9999;//初始化服务器Channel绑定的端口号为9999 selector= Selector.open();//初始化Selector对象 server=ServerSocketChannel.open();//初始化服务器Channel对象 ServerSocket socket=server.socket();//获取服务器Channel对应的//ServerSocket对象 socket.bind(new InetSocketAddress(port));//把Socket绑定到监听端口9999上 server.configureBlocking(false);//将服务器Channel设置为非阻塞模式 server.register(selector,SelectionKey.OP_ACCEPT);//将服务器Channel注册到 Selector对象,并指出服务器Channel所感兴趣的事件为可接受请求操作 } public void run() { while(true) { try { /** *应用Select机制轮循是否有用户感兴趣的新的网络事件发生,当没有 * 新的网络事件发生时,此方法会阻塞,直到有新的网络事件发生为止 */ selector.select(); } catch(IOException e) { continue;//当有异常发生时,继续进行循环操作 } /** * 得到活动的网络连接选择键的集合 */ Set <SelectionKey> keys=selector.selectedKeys(); activeSockets=keys.size();//获取活动连接的数目 if(activeSockets==0) { continue;//如果连接数为0,则继续进行循环操作 } /** /** * 应用For—Each循环遍历整个选择键集合 */ for(SelectionKey key :keys) { /** * 如果关键字状态是为可接受,则接受连接,注册通道,以接受更多的* 事件,进行相关的服务器程序处理 */ if(key.isAcceptable()) { doServerSocketEvent(key); continue; } /** * 如果关键字状态为可读,则说明Channel是一个客户端的连接通道, * 进行相应的读取客户端数据的操作 */ if(key.isReadable()) { doClientReadEvent(key); continue; } /** * 如果关键字状态为可写,则也说明Channel是一个客户端的连接通道, * 进行相应的向客户端写数据的操作 */ if(key.isWritable()) { doClinetWriteEvent(key); continue; } } } } /** * 处理服务器事件操作 * @param key 服务器选择键对象 */ private void doServerSocketEvent(SelectionKey key) { SocketChannel client=null; try { ServerSocketChannel server=(ServerSocketChannel)key.channel(); client=server.accept(); if(client==null) { return; } client.configureBlocking(false);//将客户端Channel设置为非阻塞型 /** /** * 将客户端Channel注册到Selector对象上,并且指出客户端Channel所感 * 兴趣的事件为可读和可写 */ client.register(selector,SelectionKey.OP_READ|SelectionKey.OP_READ); }catch(IOException e) { try { client.close(); }catch(IOException e1){} } } /** * 进行向客户端写数据操作 * @param key 客户端选择键对象 */ private void doClinetWriteEvent(SelectionKey key) { 代码实现略; } /** * 进行读取客户短数据操作 * @param key 客户端选择键对象 */ private void doClientReadEvent(SelectionKey key) { 代码实现略; } } 从上面对代码可以看出,使用非阻塞性I/O进行并发型服务器程序设计分三个部分:1. 向Selector对象注册感兴趣的事件;2.从Selector中获取所感兴趣的事件;3.根据不同的事件进 行相应的处理。 结语 通过使用NIO 工具包进行并发型服务器程序设计,一个或者很少几个Socket 线程就可 以处理成千上万个活动的Socket 连接,大大降低了服务器端程序的开销;同时网络I/O 采取 非阻塞模式,线程不再在读或写时阻塞,操作系统可以更流畅的读写数据并可以更有效地向 CPU 传递数据进行处理,以便更有效地提高系统的性能
发表评论
-
android Activity注解方式获取UI实例 绑定事件
2013-04-27 14:30 2141使用注释方式代替findVIewById 并绑定事件 示 ... -
SQL server ResultSet is Read only
2010-07-08 14:48 1013//stmt = cn.createStat ... -
java问题
2010-04-27 12:49 5971.一个空的index.jsp,结果还是出现了NullPoin ... -
JVM监控工具介绍jstack, jconsole, jinfo, jmap, jdb, jsta
2010-04-07 11:21 1739http://www.2mysite.net/Article/ ... -
jconsole的使用手册
2010-04-07 11:19 794http://hi.baidu.com/xuwanbest/b ... -
程序员对于市场的反应能力
2010-03-19 17:18 700去年iphone ,i ... -
string stringbuffer区别
2010-03-16 18:09 917转:http://blog.csdn.net/yirentia ... -
ArrayList Vector LinkedList 区别与用法
2010-03-10 22:15 668http://www.cnblogs.com/mgod/arc ... -
AOP里面3个概念Advice,PointCut,Advisor(转载)
2010-03-10 22:04 2515文章分类:Java编程 http:// ... -
Apache Tomcat on mac.
2010-03-07 18:19 1185转:http://llleooo.spaces.live ... -
手工编译jsp
2010-03-01 15:46 1698A java-classpath jasper.jar;ser ... -
Java安装后JDK/bin目录下的众多exe文件的用途
2010-01-26 13:22 878http://nanhaochen.blog.51ct ... -
jsp tag标签 SKIP_BODY,EVAL_PAGE,EVAL_BODY_INCLUDE,EVAL_BODY_AGAIN返回值的各个含义及区别
2010-01-15 12:58 3032http://blog.csdn.net/achun2050/ ... -
远程控制TOMCAT启动
2010-01-12 16:59 1522http://www.java-cn.com/club/? ... -
java js获取来源页面
2009-12-15 11:14 1876java 获取来源页面:System.out.println( ... -
开源协议简介BSD、Apache Licence、GPL、LGPL、MIT
2009-12-14 09:47 1162http://gchuyun.iteye.com/blog/2 ... -
ant build.xml详解
2009-12-08 11:12 1305http://xiaobian.iteye.com/blog/ ... -
java -jar -classpath
2009-12-03 16:03 1966突然发现自己不会命令行运行程序 http://www.zea ... -
apache commons-dbutils
2009-11-26 17:21 988一、关于DbUtils commons-dbutil ... -
javaFile路径空格问题
2009-11-26 16:20 1094File file =new FIle(URI);用这个 M ...
相关推荐
matplotlib-3.6.3-cp39-cp39-linux_armv7l.whl
numpy-2.0.1-cp39-cp39-linux_armv7l.whl
基于springboot个人公务员考试管理系统源码数据库文档.zip
onnxruntime-1.13.1-cp310-cp310-win_amd64.whl
基于springboot的西山区家政服务网站源码数据库文档.zip
Linux环境下,关于C++静态库的封装和调用代码。 TestLib是库目录。 TestLibCall是调用库的目录。
基于springboot软件技术交流平台源码数据库文档.zip
numpy-1.20.1-cp39-cp39-linux_armv7l.whl
ASP.NET酒店管理系统源码(WPF) 一、源码特点 采用WPF进行开发的酒店管理系统源码,界面相当美观,功能齐全 二、菜单功能 1、预订登记:可选择入住时间、离店时间、所在城市、证件类型,保存、删除、查询、返回 2、住宿结算:新增入住、保存、删除、查询、返回 3、今日盘点:查询、返回 4、查询统计: 5、房间管理:增加房间类型、删除类型、增加房间、删除房间、保存、返回 6、用户管理:增加用户、删除用户、保存、返回 7、系统配置:基本功能 8、显示当前系统时间等功能的实现
坠落的天空小游戏图片和代码
论文描述:该论文研究了某一特定领域的问题,并提出了新的解决方案。论文首先对问题进行了详细的分析和理解,并对已有的研究成果进行了综述。然后,论文提出了一种全新的解决方案,包括算法、模型或方法。在整个研究过程中,论文使用了合适的实验设计和数据集,并进行了充分的实验验证。最后,论文对解决方案的性能进行了全面的评估和分析,并提出了进一步的研究方向。 源码内容描述:该源码实现了论文中提出的新的解决方案。源码中包含了算法、模型或方法的具体实现代码,以及相关的数据预处理、实验设计和性能评估代码。源码中还包括了合适的注释和文档,以方便其他研究者理解和使用。源码的实现应该具有可读性、可维护性和高效性,并能够复现论文中的实验结果。此外,源码还应该尽可能具有通用性,以便在其他类似问题上进行进一步的应用和扩展。
环境说明: 开发语言:python Python版本:3.6.8 数据库:mysql 5.7 数据库工具:Navicat11 开发软件:pycharm
基于springboot高校学术交流平台源码数据库文档.zip
onnxruntime-1.16.2-cp310-cp310-win_amd64.whl
基于springboot+vue的实践性教学系统源码数据库文档.zip
基于springboot的校园二手物品交易系统源码数据库文档.zip
numpy-1.23.5-cp39-cp39-linux_armv7l.whl
bimdata_api_client-4.0.2-py3-none-any.whl
环境说明: 开发语言:PHP 框架:原生php/thinkphp5 服务器:Apache 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat 11 运行软件:小皮phpStudy
基于SpringBoot的中老年人文化活动平台源码数据库文档.zip