首页 新闻 会员 周边 捐助

Mina框架实现500个客户端同时访问服务器

0
[已解决问题] 解决于 2014-06-26 10:48

我想用Mina框架做一个高并发的测试:500个客户端同时访问服务器。要写500个Client和500个ClientHandler吗?

liyuhaoo的主页 liyuhaoo | 菜鸟二级 | 园豆:228
提问于:2014-06-26 09:42
< >
分享
最佳答案
0

500 次 ConnectFuture connect = connector.connect(new InetSocketAddress(HOST, PORT)) 得到 500 个 IoSession,一个 ClientHandler 。

奖励园豆:5
Launcher | 高人七级 |园豆:45050 | 2014-06-26 09:51

我是写了一个ClientFactory,在Client中开了500个线程,ClientFactory.getClient(Consist.HOSTS[j], Consist.PORT,
       Consist.HANLERS[j]);不知道是否能行?

liyuhaoo | 园豆:228 (菜鸟二级) | 2014-06-26 09:59

@liyuhaoo: 可以,你可以使用抓包软件看看建立了多少条连接来验证。

Launcher | 园豆:45050 (高人七级) | 2014-06-26 10:01

@Launcher: 控制台的输出:

服务端启动  开始监听端口:3005
第 1个客户端登录,RemoteAddress:/127.0.0.1:59772
第 2个客户端登录,RemoteAddress:/127.0.0.1:59773
第 3个客户端登录,RemoteAddress:/127.0.0.1:59774
第 4个客户端登录,RemoteAddress:/127.0.0.1:59775
第 5个客户端登录,RemoteAddress:/127.0.0.1:59776

常量类:

public final class Consist {
 public static final String[] HOSTS = { "127.0.0.1", "127.0.0.2",
   "127.0.0.3", "127.0.0.4", "127.0.0.5" };
 public static int PORT = 3005;
 public static IoHandler HANLERS = new MinaClient1Handler();
}

Client类:

public class MinaClient {
 public static void main(String[] args) {
  
  for (int i = 0; i < Consist.HOSTS.length; i++) {//开3个线程
   final int j=i;
   new Thread(new Runnable() {
    @Override
    public void run() {
     ClientFactory.getClient(Consist.HOSTS[j], Consist.PORT,
       Consist.HANLERS);
    }
   }).start();
  }
 }
}

为什么输出的IP为同一个呢?

liyuhaoo | 园豆:228 (菜鸟二级) | 2014-06-26 10:20

@liyuhaoo: 因为你是从同一个网卡出去的请求,虽然 IP 相同,但是 PORT 不一样。你学过《计算机网络》这么课程吗?

Launcher | 园豆:45050 (高人七级) | 2014-06-26 10:23

@Launcher: 那我定义的 public static final String[] HOSTS = { "127.0.0.1", "127.0.0.2",
   "127.0.0.3", "127.0.0.4", "127.0.0.5" };岂不是没有用?

liyuhaoo | 园豆:228 (菜鸟二级) | 2014-06-26 10:33

@liyuhaoo: 这表示的是主机,不是你的客户端。是说客户端想要连接到下列 5 个地址:

127.0.0.1:3005

127.0.0.2:3005

127.0.0.3:3005

127.0.0.4:3005

127.0.0.5:3005

能否劳你大驾找本《计算机网络》学习点基础知识。

Launcher | 园豆:45050 (高人七级) | 2014-06-26 10:43

@Launcher: 懂了,谢谢啊

liyuhaoo | 园豆:228 (菜鸟二级) | 2014-06-26 10:48
其他回答(1)
0

问下这个mina的服务器端能做集群吗?

masque | 园豆:210 (菜鸟二级) | 2014-06-26 09:56
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册