步骤:

  1、服务端创建ServerSocket,循环调用accept()等待客户端连接;

  2、客户端创建socket并请求与服务端对话;

  3、服务端接收客户端的请求,创建socket与客户端进行专线连接;

  4、服务端监测是否接收到消息,长时间没有接收到消息则关闭连接;

  

public class ServerSocketThread extends Thread{
  private Socket socket = null;
   public ServerSocketThread (Socket socket){
          this.socket = socket;
      }
      @Override
      public void run(){
            try {
                  InputStream inputStream = socket.getInputStream();
                  OutputStream outputStream = socket.getOutputStream();
                  BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
                  if(bufferedReader.readLine()!=null){
                        String read = bufferedReader.readLine();
                        System.out.println(read);
                        System.out.println(str2HexStr(read));
                  }
                /**
                 * 关闭输出流
                 */
                socket.shutdownOutput();


                /**
                 * 关闭相对应的资源
                 */
                outputStream.close();
                bufferedReader.close();
                inputStream.close();
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }


      }
}

public class SocketServer {
      public static void main(String[] args) {
            try {
                  ServerSocket serverSocket = new ServerSocket(8888);
                  Socket socket = null;
                  int clientCount = 0;

                  while(true){
                        socket = serverSocket.accept();
                        ServerSocketThread serverSocketThread = new ServerSocketThread(socket);
                        serverSocketThread.start();
                        clientCount++;
                        System.out.println("客户端数量为:"+clientCount);
                  }
            } catch (IOException e) {
                e.printStackTrace();
          }
      }
}