socket通信报already connected异常

​--服务端编码
public class SocketListener implements CommandLineRunner {
// @Resource
// private MessgaChange messgaChange;

@Override
public void run(String... args) throws Exception {
    Socket client = null;
    ServerSocket serverSocket =null;
    try {
        serverSocket = new ServerSocket(9021);

        while (true){
            System.out.println("Socket服务端已启动,等待客户端请求...");
            client = serverSocket.accept();
            new Thread(new ServerThread(client)).start();
        }


    } catch (Exception e) {
        e.printStackTrace();
    }finally {
        client.close();
        serverSocket.close();
        System.out.println("Socket服务端已关闭...");
    }
}

}

--客户端测试编码
public static void main(String[] args) throws Exception{
Socket clientsocket = null;
clientsocket = new Socket();
SocketAddress socketAddress = new InetSocketAddress(
"10.42.14.149", 9021);
clientsocket.connect(socketAddress, 20000);
clientsocket.setSoTimeout(20000);// 设置读超时10秒
clientsocket.connect(socketAddress, 20000); //设置连接时间5秒
String socketmessage="你好";
byte[] outmess = socketmessage.getBytes("GBK");
//<------------------------发送报文----------------------------> //
OutputStream out = clientsocket.getOutputStream();
out.write(outmess);
out.flush();
}
客户端报错:
Exception in thread "main" java.net.SocketException: already connected
at java.net.Socket.connect(Socket.java:569)
服务端报错:
java.net.SocketException: Connection reset
at java.net.SocketInputStream.read(SocketInputStream.java:209)
at java.net.SocketInputStream.read(SocketInputStream.java:141)
at java.net.SocketInputStream.read(SocketInputStream.java:127)

第一次接触socket,不知道是什么原因报错,求大神帮忙看看怎么修改,不胜感激!