Javaweb核心技术----TCP协议

一、tcp简介

TCP 用于应用程序之间的通信。

当应用程序希望通过 TCP 与另一个应用程序通信时,它会发送一个通信请求。这个请求必须被送到一个确切的地址。在双方“握手”之后,TCP 将在两个应用程序之间建立一个全双工 (full-duplex) 的通信。

这个全双工的通信将占用两个计算机之间的通信线路,直到它被一方或双方关闭为止。

特点:

1、TCP面向连接(如打电话要先拨号建立连接):

2、TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序 到达;tcp通过校验和,重传控制,序号标识,滑动窗 口、确认应答实现可靠传输。如丢包时的重发控制,还可以对次序乱掉的分包进行顺序控制。

3、每一条TCP连接只能是点到点的

4、TCP对系统资源要求较多。

二、tcp连接建立(三次握手)

如动态图:

 三、tcp java 代码小练习

1.创建发送端(客户端)

public class TcpClient {
    public static void main(String[] args) throws IOException {
        /**
         * 1.创建发送端socket 对象(创建连接)---三次握手 确保 服务端 才开始传输数据
         * 2.获取输出流对象
         * 3.发送数据
         * 4.释放资源
         */

        // 1.创建发送端socket 对象(创建连接)

            Socket socket = new Socket(InetAddress.getByName("activate.navicat.com"), 8080);
            //2.获取输出流对象
            OutputStream outputStream = socket.getOutputStream();
            //发送数据
            System.out.println("客户端正在发送数据...............");
            outputStream.write("(,,・∀・)ノ゛Hello Word ".getBytes());
            System.out.println("客户端发送数据成功...............");
            outputStream.close();
            socket.close();

    }
}

2.创建接收端(服务端)

public class TcpServer {
    public static void main(String[] args) throws IOException {
        /**
         * 1.创建接收端Socket对象;
         * 2.监听 (阻塞:如果建立连接失败,程序会一直阻塞,不往下执行;
         * 3.获取输入流对象;
         * 4.获取数据
         * 5.输出数据
         * 6.释放资源;
         */

        //1.创建接收端Socket对象;
        ServerSocket serverSocket = new ServerSocket(8080);
        //2.监听 (阻塞:如果建立连接失败,程序会一直阻塞,不往下执行;
        System.out.println("服务器正在等待客户端数据......");
        Socket socket = serverSocket.accept();
        //3.获取输入流对象;
        InputStream inputStream = socket.getInputStream();
        byte[] bytes = new byte[1024];
        int len = inputStream.read(bytes);
        System.out.println("服务器端接受到客户端发送的数据:" + new String(bytes,0,len));
        inputStream.close();
        socket.close();
        serverSocket.close();

    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值