你这个集中器具体是什么?
个人认为可以建立10个socket连接,每次需要和某个具体的设备通信时就取出某个socket连接,完成后也不用close()。

解决方案 »

  1.   

    to  foryouever(光速兔子) :
    这个集中器相当一个中间转换器,它的作用就是把客户端的请求传给设备,把设备的响应数据传给客户端,
    建立十个SOCKET,每个SOCKET用一个线程来操作,而且不关闭SOCKET,这样能行吗?
      

  2.   

    应该问题不大,如果慢,那是因为java解释执行,并不说明占用太多资源。
      

  3.   

    如果我有100台设备,那要建立100个线程,这样速度更慢,性能差? 
    能不能在一个SOCKET里与所有的设备进行通信,
      

  4.   

    to  foryouever(光速兔子) :
    集中器设定一个IP地址:192.168.0.12。端口:5005
    客户端通过IP地址和端口与集中建立SOCKET,然后客户端向集中器发送一个字节流,这个字节流是对应不同的设备,集中器会向不同的设备发送这个字节流,然后该设备返回一个响应字节流由集中器传给客户端,但是注意:客户端只能与一台设备这样交换数据。
      

  5.   

    客户端向集中器向发送设备请求信息不是随机的,每个设备都有地址,不是IP地址,是那个字节流里的。
    哥们:
    我的QQ:32372810
    这样太慢了。
      

  6.   

    另外,从你叙述来看,客户端所有信息是发向集中器的5005端口,而由集中器判断该信息该传给哪台机器,这么说来,只要建立一个socket不停的发带有地址头信息的消息即可。接收消息时由客户端程序进行判断消息源。