socket客户端如何主动断开与服务器的连接

这里是客户端
new Thread(new Runnable() {
@Override
public void run() {
try {
final Socket socket=new Socket("192.168.43.39",8080);
OutputStream out=socket.getOutputStream();
PrintWriter pw=new PrintWriter(out);
pw.write("123");
pw.flush();
socket.shutdownOutput();
socket.setSoTimeout(5000);
InputStream inputStream=socket.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
String client=null;
while ((client=bufferedReader.readLine())!=null){
System.out.print("这里是客户端。服务器说:"+client);
textView.setText("这里是客户端,"+client);
}
//关闭相关资源
inputStream.close();
bufferedReader.close();
pw.close();
out.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}).start();

这是服务器端
     try {
            ServerSocket serverSocket=new ServerSocket(8080);
            System.out.print("服务器已启动,正在等待客户端连接...\n");
            //记录客户端的数量
            int count=0;
            //循环监听等待客户端的连接
            while (true){
                //调用accept()方法监听,等待客户端的连接
                socket= serverSocket.accept();
                System.out.print("服务器已连接客户端!\n");
                //创建一个新的线程
                ServerThread serverThread=new ServerThread(socket);
                //开启线程
                serverThread.start();
                count++;
                System.out.print("当前客户端的数量为:"+count+"\n");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

https://blog.csdn.net/messigodlike/article/details/78523737