`
ahua186186
  • 浏览: 562050 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

模拟客户端测试java nio selector可管理的最大连接数。

 
阅读更多
最近在找工作,无聊,模拟客户端测试一下以前写的一个nio框架:
测试机器:Window xp sp3
一:客户端准备:
1.修改注册表:因为windows 默认只开通0-5000个端口,经测试最多可以连接3900多个并发连接--,(连接到一个服务时器的本地端口是有限的,也就只能是0到65535)。
1). 启动注册表编辑器。 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
2). 新建
值名称:MaxUserPort
值类型: DWORD
值数据: 65534(用十进制的方法写进去就可以,如果是十六进制,是FFFE,因为4个F是65535嘛)
有效范围: 5000 - 65534 (十进制)
默认: 0x1388 5000 (十进制)
修改注册表后的测试结果:模拟客户端一台机器可以支持到16000多个客户端连接。


二。服务端准备:我需要一台大内存的服务器,支持100万个长连接,这个没办法弄到.
-->用自己机器测试结果:1万个长连接稳定快速运行。

1.服务端程序已经写好
2.linux /windows系统设置
总结:
1)Socket服务器接收连接数是有硬件限制的,因为它会消耗服务器CPU,内存,网络资源-->(理论上服务器器端接收连接是没有软限制的--因为服务器只用一个端口,也就只占内存,CPU),
2).服务器再牛也没办法,所以就有了服务器的分布式架构,通过它来分压,多台服务器,要是你想要连接数量很大的话只能这样了.要不你就让长久不通信的断开(短连接),释放资源,
3).或者采用UDP协议。

学习:Linux下socket高并发系统设置
-->http://www.29ma.cn/20130409/1008/
-->http://rdc.taobao.com/blog/cs/?p=1062
分享到:
评论

相关推荐

    java nio Selector的使用-客户端

    本篇文章将深入探讨如何在Java NIO中使用Selector处理客户端的I/O请求。 首先,我们需要理解Selector的工作原理。Selector是一个多路复用器,它可以监控多个通道的事件状态,如连接就绪、数据可读或可写等。通过...

    Java Nio selector例程

    java侧起server(NioUdpServer1.java),基于Java Nio的selector 阻塞等候,一个android app(NioUdpClient1文件夹)和一个java程序(UI.java)作为两个client分别向该server发数据,server收到后分别打印收到的消息...

    Java NIO——Selector机制解析三(源码分析)

    Selector机制是Java NIO中的核心组件,它允许单线程同时监控多个通道(Channels)的状态变化,例如连接就绪、数据可读或可写等。这种机制使得程序能够高效地处理多个网络连接,而无需为每个连接创建单独的线程,大大...

    JAVA NIO 异步通信客户端

    在JAVA NIO中,这可以通过Selector和回调函数实现,当数据准备好时,Selector会通知客户端。 6. **Selectors的注册和选择**: 客户端创建的SocketChannel需要注册到Selector上,指定感兴趣的事件(如OP_READ, OP_...

    Java NIO实现多个客户端之间的消息互发,客户端与服务器完整代码

    在这个场景下,Java NIO能够帮助服务器有效地处理多个客户端连接,并实现客户端之间消息的互发。 首先,我们要理解Java NIO的基本组件。主要包括通道(Channels)、缓冲区(Buffers)和选择器(Selectors)。通道是...

    Java_NIO-Selector.rar_java nio_selector

    Selector是Java NIO框架中的核心组件,它使得单个线程能够管理多个通道(Channels),从而提高系统资源利用率并优化性能。下面我们将详细探讨Java NIO中的Selector机制。 1. **Selector的作用** Selector的主要功能...

    JAVA nio异步长连接服务端与客户端

    在标题中提到的"JAVA nio异步长连接服务端与客户端",我们可以理解为使用Java NIO实现的TCP长连接通信。TCP长连接是指在客户端和服务端之间保持一个持久的连接,可以多次收发数据,而不必每次通信都建立新的连接。这...

    java nio Selector的使用-服务器端

    Selector是Java NIO中的核心组件,用于监听多个通道的事件,如连接建立、数据可读、写空等。在服务器端,Selector的应用尤为重要,因为它可以实现单线程处理多个客户端连接,从而提高系统的并发能力。 Selector的...

    Java NIO Selector选择器简介.pdf

    **Selector** 是 Java NIO (New I/O) 框架中的一个重要组成部分,主要用于检测一个或多个 **NIO Channel** 的状态,包括但不限于可读、可写、可连接或可接收等状态。它的引入主要是为了克服传统 BIO (Blocking I/O) ...

    Java NIO非阻塞服务端与客户端相互通信

    Java NIO(New IO)是Java 1.4版本引入的一种新的IO模型,它提供了不同于传统阻塞IO的处理方式,极大地提高了IO操作的效率。非阻塞IO的核心在于,当数据不可用时,不会使线程等待,而是立即返回并进行其他操作,这样...

    JavaNIO chm帮助文档

    Java NIO系列教程(六) Selector Java NIO系列教程(七) FileChannel Java NIO系列教程(八) SocketChannel Java NIO系列教程(九) ServerSocketChannel Java NIO系列教程(十) Java NIO DatagramChannel Java ...

    Java NIO测试示例

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java从1.4版本开始引入的一种新的I/O模型,它为Java应用程序提供了更高效、灵活...通过熟练掌握Java NIO,开发者可以构建出更加高效、可扩展的系统。

    Java NIO英文高清原版

    Java NIO,全称为Non-Blocking Input/Output(非阻塞输入/输出),是Java平台中用于替代标准I/O(BIO)模型的一种新机制。NIO在Java 1.4版本引入,提供了更高效的数据处理和通道通信方式,特别适用于高并发、大数据...

    java NIO和java并发编程的书籍

    java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java NIO和java并发编程的书籍java...

    java NIO实例

    在`NIOServer.java`中,可能会创建ServerSocketChannel监听客户端连接,然后通过accept()方法接收新连接,形成SocketChannel。 6. **Pipe**:在本地进程间通信(IPC)中使用,提供单向数据流。 7. **CharSet和...

    java nio 通信服务器、客户端完整例子

    用java编写的nio通信的例子,nio是io编程的新版本,比io较流行。同时本例子是适用socket通信的。可以在此基础上,添加您的个人应用。本例子适用于:java通信的学习者,android平台通信的学习者。

    Java_NIO类库Selector机制解析.doc

    Java_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.docJava_NIO类库Selector机制解析.doc

    java NIO.zip

    自Java 1.4版本引入NIO后,它为Java开发者提供了更高效的数据传输方式,尤其是在处理大量并发连接时。NIO的核心在于通道(Channels)和缓冲区(Buffers)的概念,与传统的流(Streams)有所不同。 1. **通道...

    java NIO技巧及原理

    Java NIO(New Input/Output)是Java标准库提供的一种I/O模型,它与传统的 Blocking I/O(IO)相比,提供了更加高效的数据传输方式。在Java NIO中,"新"主要体现在非阻塞和多路复用这两个特性上,这使得NIO更适合于...

Global site tag (gtag.js) - Google Analytics