import java.io.InputStream;
import java.net.InetAddress;
import java.net.Socket;

public class TcpClientDemo1 {
    private static final int PORT = 12306;

    public void connect() throws Exception {
        // 创建一个Socket并连接到给出地址和端口好的计算机
        /*
         * public Socket(InetAddress address,int port)
         *
         * 创建一个流套接字并将其连接到指定 IP 地址的指定端口号。
         * JDK提供了一个Socket类,用于实现Tcp客户端程序。
         */
        Socket client = new Socket(InetAddress.getLocalHost(), PORT);

        // 得到接收数据的流
        /*
         *public InputStream getInputStream()
         * 返回此套接字的输入流。
         *
         * 返回:
         *         从此套接字读取字节的输入流。
         */
        InputStream is = client.getInputStream();

        // 定义1024个字节数组的缓冲区
        byte[] buf = new byte[1024];

        // 将数据读到缓冲区中
        /*
         * public int read(byte[] b)
         * 从输入流中读取一定数量的字节,并将其存储在缓冲区数组 b 中。
         * 返回:
         *         读入缓冲区的总字节数;如果因为已经到达流末尾而不再有数据可用,则返回 -1。
         *
         */
        int len = is.read(buf);

        // 将缓冲区中的数据输出
        System.out.println(new String(buf, 0, len));

        // 关闭Socket对象,释放资源
        client.close();
    }
}