(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通信是古代两个城市之间的交流。
发送方,要派使者去送信息,所以首先要创建使者(Socket)对象,使者要知道具体去哪座城IP)的哪个门port),然后使者携带信息出城OutputStream),出完成要关城门close)。
接收方是另一座城。首先要打开对应的门ServerSocket),门中出来接信的人Socket s = ss.accept()),然后接受信息InputStream),最后关闭城门close)。

猜你喜欢

转载自blog.csdn.net/weixin_45727931/article/details/108541103
今日推荐