java基础-网络编程-TCP

TCP:TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象

在通信之前一定要保证通信已经建立

通过Socket产生IO流来进行网络通信

复制代码
package Day18_net;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.ServerSocket;
import java.net.Socket;

public class NetTest05 {
    public static void main(String[] args) throws IOException {
        //接收端
        //1、创建sercerSocket
        ServerSocket ss = new ServerSocket(10086);
        //2、监听客户端的链接
        Socket accept = ss.accept();
        //3、从链接通道中获取
        InputStream is = accept.getInputStream();
        //将字节流变为字符流
        InputStreamReader isr = new InputStreamReader(is);
        //添加缓冲流
        BufferedReader br = new BufferedReader(isr);

        int b;
        while ((b = br.read()) != -1) {
            System.out.print((char) b);
        }
        //4、
        accept.close();
        ss.close();

    }
}
复制代码
package Day18_net;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;
import java.nio.charset.StandardCharsets;

public class NetTest04 {
    public static void main(String[] args) throws IOException {
        //发送端
        //1、创建Socket对象
        Socket socket = new Socket("127.0.0.1",10086);
        //2、可以从链接通道中获取输出流
        OutputStream os = socket.getOutputStream();
        //3、写出数据
        os.write("你好".getBytes("UTF-8"));
        //4、释放资源
        os.close();
        socket.close();
    }
}

TCP协议中的三次握手和四次挥手协议:

相关推荐
Re_zero1 小时前
线上日志被清空?这段仅10行的 IO 代码里竟然藏着3个毒瘤
java·后端
洋洋技术笔记1 小时前
Spring Boot条件注解详解
java·spring boot
程序员清风19 小时前
程序员兼职必看:靠谱软件外包平台挑选指南与避坑清单!
java·后端·面试
皮皮林55120 小时前
利用闲置 Mac 从零部署 OpenClaw 教程 !
java
华仔啊1 天前
挖到了 1 个 Java 小特性:var,用完就回不去了
java·后端
SimonKing1 天前
SpringBoot整合秘笈:让Mybatis用上Calcite,实现统一SQL查询
java·后端·程序员
日月云棠2 天前
各版本JDK对比:JDK 25 特性详解
java
用户8307196840822 天前
Spring Boot 项目中日期处理的最佳实践
java·spring boot
JavaGuide2 天前
Claude Opus 4.6 真的用不起了!我换成了国产 M2.5,实测真香!!
java·spring·ai·claude code
IT探险家2 天前
Java 基本数据类型:8 种原始类型 + 数组 + 6 个新手必踩的坑
java