当前位置:  技术问答>java相关

在serversocket编程中,怎样让它同时和多个客户端通信???

    来源: 互联网  发布时间:2015-07-20

    本文导语:  利用serversocket可以和多个客户端通信,在有的资料中是这样的: public void server() {    Thread client=null;    Socket st;     ServerSocket sv=new Serversocket(12099);     while(true)     {        st=sv.accept();        if(st...

利用serversocket可以和多个客户端通信,在有的资料中是这样的:
public void server()
{
   Thread client=null;
   Socket st; 
   ServerSocket sv=new Serversocket(12099);
    while(true)
    {
       st=sv.accept();
       if(st!=null)
       {
          client=new serverthread(st);
          client.start();
      }
   }
}
但上面只生成了一个线程,但如果有多个客户同时和他联系,那要同时生成多个线程,但我不知道怎样生成多个线程,如过要控制最多只有10个线程,那超过10个客户后,再有其它客户时,就让他等待,一直到别的客户结束,那这排队等候又如何实现呢?而且这个10个线程生成后可能要同时和数据库打交道(更新,插入,删除等),那又如何控制同步呢?

|
1。关于多线程
。。。。。。。。。。。
try{
        int i = 0;
        sSocket = new ServerSocket(YOUR_PORT);
        //a dead circle for listening
        while(true){
            //accept the socket from client
            Socket sin = sSocket.accept();
            i++;
            if (i>99999999)  i = 1;
            //bring the socket to other class to operate some action
            ThreadProc tp = new ThreadProc(sin,i);
       }
    }catch(Exception ex){
      ex.printStackTrace();
    }
    finally{
      try{
        endServer();
      }catch(Exception ex){}
    }
.........................
对每个客户端创建一个新的线程

2。去看看java api的手册,关于的线程的方法说明,java里面已将有现成的方法。
3。控制同步;使用synchronized关键字
如:
public synchronized void setDateIntoDatabase(....){....}
这个方法就被同步控制了
多看看api手册.
good luck!

|
2. 请看下面的代码:
  while(true){
      newConnection = serverSocket.accept();
      ServerHelper sHelper =
          new ServerHelper(newConnection,dbHelper);
      sHelper.start();
    }

ServerHelper是个类,生成它的实例来处理一个客户的请求

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间java.net类serversocket的类成员方法: serversocket定义及介绍
  • 在线等待帮助!!serversocket是什么意思
  • java命名空间java.net类serversocket的类成员方法: isbound定义及介绍
  • 我用单机编译socket和ServerSocket程序,我应该怎样对自己的机器进行设置?
  • java命名空间java.net类serversocket的类成员方法: isclosed定义及介绍
  • java中ServerSocket的问题
  • java命名空间java.net类serversocket的类成员方法: getreceivebuffersize定义及介绍
  • CSS属性参考手册 iis7站长之家
  • java命名空间java.net类serversocket的类成员方法: getlocalport定义及介绍
  • ServerSocket的一个小问题
  • java命名空间java.net类serversocket的类成员方法: setreceivebuffersize定义及介绍
  • 帮忙:ServerSocket编程
  • java命名空间java.net类serversocket的类成员方法: getinetaddress定义及介绍
  • 用一个ServerSocket监听,为什么过一段时间就会出exception?
  • java命名空间java.net类serversocket的类成员方法: setsotimeout定义及介绍
  • 为什么用new socket(主机名,端口号)的方法连接不上用serversocket(端口号)的主机
  • java命名空间java.net类serversocket的类成员方法: implaccept定义及介绍
  • 不能用Socket或是ServerSocket读取数据
  • java命名空间java.net类serversocket的类成员方法: tostring定义及介绍
  • Java ServerSocket编程,我为什么接收不到数据?
  • java命名空间java.net类serversocket的类成员方法: close定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3