解决方案 »

  1.   

    你应该在服务端的处理线程中,通过while(true)去接收消息,你直接在线程的构造函数中接收了消息(实际上这时候还是在主线程运行的),并且立即将socket关闭了,所以你这里开启线程一点意义都没有。socket都关闭了,下次再发当然就不行了。
    至于你说的通一次断一次,依次循环,那应该是你的客户端对断了之后做了处理,就是接着下一次再重新连接。关键原因就是你的服务端收了一条消息之后就立即关闭了。
      

  2.   

    楼上说的对,具体代码(示意代码)可能是这样:while (running) {
    try {
    Socket socket = socketServer.accept();
    BufferedReader reader = new BufferedReader(new InputStreamReader(socket.getInputStream(),"UTF-8"));
    String cmd = reader.readLine(); CmdCenter cc = new CmdCenter(socket,reader,cmd);
    cc.setDaemon(false);
    cc.start(); } catch (Exception e) {
    logger.error(e.getMessage());
    }
    }