Angent angent = new Angent(socket);这个是干什么的,不见你使用啊!

解决方案 »

  1.   

    哦,看到了,应该说你这样是可以的!没有问题.但你既然每个连接都建立了一个ServerThread ,为什么还要使用队列呢?还不如直接用线程呢?使用队列的目的就是为了减少线程的建立,让一个线程处理多个任务.在你的程序里没有看到这一点啊.当连接的用户超过操作系统所容纳的线程数目时,程序不会停留在"@@@"处. 会在serverthread.start();处抛出异常.
      

  2.   

    程旭兄:这是飞思科技的一本<java tcp/ip>上的聊天室实例;我也很费解.
    你的意思我是这么理解的
    有两种解法:
    1 不建立队列,直接创建线程进行服务;(这样作的话,当连接很多时,是否会出现)
    2 建立队列,用线程反复处理堆栈弹出的Agent
    我没有理解错误把
    ******************
    我对这个程序的理解是这样的,请指教
    :当很多连接(Agent)要在很短时间内创建时,服务器不是马上处理,而是先放到一个堆栈内,然后调用线程一个一个往外取.如果不这样做,而直接让线程进行服务的话,可能出现线程创建过多而死机.基于这种思想,我这么该动一下好不好
    ServerSocket serversocket = new ServerSocket(1111, 20);
                
                while(listening)//服务器正在监听时
                {
                    //等待客户的连接请求,一旦连接到来:
                    Socket socket = serversocket.accept();
                          
                    //实例化一个代理,实现服务器与客户端之间的解藕,它在服务器面前就是客户端
                    Angent angent = new Angent(socket);
                  //@@@实例化一个服务线程??????????
                    ServerThread serverthread = new ServerThread();
                    //将客户代理推入同步栈????????
                    theStack.push(angent);
                    //启动服务线程
                   if(线程的数量小于100)
                   {
                     serverthread.start();
                    }
                }
                
                //关闭服务
                serversocket.close();
      

  3.   

    InteliIM 开放源代码项目招人了!简 介: 
    InteliIM 是一款基于 Microsoft.NET 平台的企业内部即时通讯软件。她功能强大,操作简便,安装程序体积小,对系统配置要求低,兼容 .NET Framework 1.1。 开源项目主页: 
    http://cosoft.org.cn/html/osl/projects.php?group_id=19789 我的(软件)主页: 
    http://plissoft.bigwww.com 
    (由于 DNS 问题,有时,有地可能连接不上,深表遗憾!) 我的 MSN: 
    [email protected] (已拥有或计划即将拥有的)特点: 
    * 美观的用户界面 
    * 完善的用户、消息、服务管理 
    * 支持两人对话 
    * 支持多人会议 
    * 支持在线硬盘 
    * 支持文本广播 
    * 支持可定制自动/人工交互式服务 
    * 支持 MSN Messenger 服务 
    * 支持 QQ 服务 热诚欢迎对开发 .NET 即时通讯软件有兴趣并且有一定相关开发经验的人员以及美工、网站设计人员和有一定专长的朋友参与! 想参与该项目的朋友,请发电子邮件给我,并简单介绍一下自己。-------------------开源项目需要兴趣、热情和耐心  -------------------
      

  4.   

    zhangyu6050(我是猪) 你说的思想是对的,但实现起来会有很多的问题的,我自己就在这上面碰到了很多的问题现在使用 JDK1.5 的  java.util.concurrent 包,可以很好的处理这个问题了!我使用后发觉 java.util.concurrent 确实好用,屏蔽了很多的多线程的问题.