javasocket问题

我写了个socket但连不上,有没有人帮我看看原因
谢谢

import java.net.*;
import java.io.*;
public class a {
    public static void main(String[] args) {
        try {//建立socket
            ServerSocket s1 = new ServerSocket(13558);//注:如果服务器在内网需要端口映射
            Socket x = s1.accept();
            System.out.println("服务已开启");
            //读取客户端的信息
            BufferedReader br = new BufferedReader(new InputStreamReader(x.getInputStream()));
            String mess = br.readLine();
            //打印出来
            System.out.println(mess);
            //回复
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(x.getOutputStream()));
            bw.write(mess+"123");
            bw.flush();
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("can't");
        }
    }
}

import java.net.*;
import java.io.*;
public class n {
    public static void main(String[] args) {
        try {
            Socket a = new Socket("127.0.0.1", 13558);//建立socket
            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(a.getOutputStream()));//建立通道
            bw.write("你好,我是客户端");//发送:你好,我是客户端
            BufferedReader br = new BufferedReader(new InputStreamReader(a.getInputStream()));
            String mee = br.readLine();
            System.out.println(mee);
        } catch (IOException e) {
            e.printStackTrace();
            System.out.println("连接超时");
        }
    }
}


bw.write();后面加一行bw.newLine();
因为代码中读消息的方式是按行读,所以发出的消息后面需要加上换行符

那catch里到底抛什么错误呢,是目标积极拒绝,还是连接超时,还是什么?