(JAVA)TCPデータの送受信

1. TCPデータ送信ステップ

TCP发送数据的步骤:
    1.创建客户端的Socket对象
    2.获取输出流,写数据
    3.释放资源

2.データプログラムコードを送信する


import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class ClientDemo {
    
    
    public static void main(String[] args) throws IOException {
    
    
        //1.创建客户端的Socket对象
        //Socket​(String host, int port) 创建流套接字并将其连接到指定主机上的指定端口号。
        Socket s = new Socket("zshao",10001);

        //2.获取输出流,写数据
        //OutputStream getOutputStream​() 返回此套接字的输出流。
        OutputStream os = s.getOutputStream();
        os.write("hello,tpc".getBytes());

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

3. TCPデータ受信ステップ

TCP接收数据的步骤
    1.创建服务器端的Socket对象
    2.监听客户端的连接,返回一个Socket对象
    3.获取输入流,读数据,并把数据显示在控制台上
    4.释放资源

4.データコードを受信する


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

public class ServerDemo {
    
    
    public static void main(String[] args) throws IOException {
    
    
        //1.创建服务器端的Socket对象
        //ServerSocket​(int port) 创建绑定到指定端口的服务器套接字。
        ServerSocket ss = new ServerSocket(10001);

        //2.监听客户端的连接,返回一个Socket对象
        //Socket accept​() 侦听要连接到此套接字并接受它。
        Socket s = ss.accept();

        //3.获取输入流,读数据,并把数据显示在控制台上
        InputStream is = s.getInputStream();
        byte [] bys = new byte[1024];
        int len;
        while ((len=is.read(bys))!=-1){
    
    
            System.out.println("数据是:"+ new String(bys,0,len));
        }
        
        //4.释放资源
        ss.close();
    }
}

5.プログラム実行結果

まず、実行中の受信プログラムを開いて送信を待機し、次に送信プログラムを実行すると、結果は次のように表示されます。
ここに画像の説明を挿入

6.メモリを視覚化する

記憶を容易にするために、私は比喩を考えました。
TCP通信が古代の2つの都市間の通信であると想定します。
情報を送信するためにメッセンジャーを送信する送信者。したがって、最初にメッセンジャーSocket)オブジェクトを作成し、どのドアPortのどの都市IPかを正確に把握するメッセンジャー、次に都市から情報を運ぶメッセンジャーOutputStream)を作成する必要があります。市の門を閉じますclose)。受信者は別の都市です。最初に対応するドアを開きServerSocket)、ドアから手紙を受け取る人Socket s = ss.accept())を開いてから、メッセージを受け入れInputStream)、最後にシティゲートを閉じますclose)。

おすすめ

転載: blog.csdn.net/weixin_45727931/article/details/108541103