Java | TCP协议

不爱生姜不吃醋⭐️
如果本文有什么错误的话欢迎在评论区中指正
与其明天开始,不如现在行动!

文章目录

  • 前言
  • TCP协议
    • 1.相关概念
    • 2.客户端
    • 3.服务端
    • 4.运行结果
  • 总结


前言

本文内容是关于TCP协议的相关知识,包括概念、客户端发送数据代码和服务端接收数据代码的实现。


TCP协议

1.相关概念

TCP通信协议是一种可靠的网络协议,它在通信的两端各建立一个Socket对象,通信之前要保证连接已经建立。
通过Socket产生IO流来进行网络通信,客户端要传输数据,使用输出流,服务端要接收数据,使用输入流
Java | TCP协议_第1张图片

2.客户端

  1. 创建客户端的Socket对象与指定服务端连接(Socket(String host,int port)
  2. 获取输出流,写数据(OutputStream getOutputStream()
  3. 释放资源(void close()
public class Client {
    public static void main(String[] args) throws IOException {
        //TCP协议,发送数据

        //1.创建Socket对象
        //细节:在创建对象的同时会连接服务端
        //      如果连接不上,代码会报错
        Socket socket = new Socket("127.0.0.1",10000);


        //2.可以从连接通道中获取输出流
        OutputStream os = socket.getOutputStream();
        //写出数据
        os.write("你好你好".getBytes());//12字节

        //3.释放资源
        os.close();
        socket.close();
    }
}

3.服务端

  1. 创建服务器端的Socket对象(ServerSocket(int port)
  2. 监听客户端连接,返回一个Socket对象(Socket accept()
  3. 获取输入流,读数据,并把数据显示在控制台(InputStream getInputStream()
  4. 释放资源(void close()
public class Server {
    public static void main(String[] args) throws IOException {
        //TCP协议,接收数据

        //1.创建对象ServerSocker
        ServerSocket ss = new ServerSocket(10000);

        //2.监听客户端的链接
        Socket socket = ss.accept();

        //3.从连接通道中获取输入流读取数据
        InputStream is = socket.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);

       // BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));

        int b;
        while ((b = br.read()) != -1){
            System.out.print((char) b);
        }

        //4.释放资源
        socket.close();
        ss.close();
    }
}

4.运行结果

在这里插入图片描述


总结

文章中代码的编写使用的都是Java网络编程知识,多加练习熟能生巧。
本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家!!!


你可能感兴趣的:(Java小知识,Java基础案例,java,tcp/ip,开发语言)