可是这样并不是线程模型啊,你希望多少个client socket并发连接服务器呢?

解决方案 »

  1.   

    "重复你一个socket来进行检测"
    怎么重复?当你新建新建一个Socket时,可能使用TCP协议在网路上建立了一个连接的可靠的通信的通道,而将信息传输完毕以后,这个通道将断调,不然路由器的负担时无法想象的,而UDP协议虽然是不面向连接的不可靠协议,但是也是非常号时的一件事,所以根本就不可能,但是你的意思可能是将连接参数放到内存中,而不用重新初始化,但是JDK里面好像没有这样的方法吧,但是我估计使用win api可能可以吧,因为它将初始化Socket连接信息和建立连接是分开的,试试吧
      

  2.   

    首先谢谢各位
    ,我意思其实在我上面的线程中,在不断的new一个socket,频繁创建socket开销比较大,能创建一个socket后,然后就用这个对象去不断的连接,这也是象这样    socket = new Socket(id,port);
        socket.connect();
        socket.close();    过一段时间再conect一下看看是不是还能连上服务器,这样就能用一个socket对象就能进行n次与同一个服务器的连接,    而不用每次都要new一个socket来进行检测
       
    不知道我的想法,行不行,
      

  3.   

    finalley
          {
              try
              {
                 socket.close();
              }
              catch(Exception e)
              {}
           }
    finalley是什么意思
      

  4.   

    其实开销是大,但是大的不是新建一个Socket对象,而是网络的连接,和网络连接相比,在内存中初始化一个对象就根本不算什么,向你上面的代码,可以使用win api实现
      

  5.   

    楼上说的没错不错如果你需要验证socket是正常连接的话,倒不用每次都关掉它可以通过读取字节流来察看
      

  6.   

    是finally写错了,谢谢指正伤桥说的很有道理,但是问题是我不会在java中使用win api,也谢谢天空,