欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA TCP通信(客户端-服务端)

程序员文章站 2022-06-05 21:02:40
...

一、简单通信

①客户端发送数据

// 创建客户端的socket服务,指定目的主机和端口
Socket sc = new Socket(" 172.20.1.34", 10000);
// 为了发送数据,应该获取socket中的输出流
OutputStream out = sc.getOutputStream();

// write接收字节数据
out.write("tcp test".getBytes());

sc.close();

②服务端接收数据

public static void main(String[] args) throws Exception{
        // 建立服务端Socket服务,并指定监听一个端口
        ServerSocket ss = new ServerSocket(10000);

        // 通过accept方法来获取连接过来的客户端对象

        Socket s = ss.accept();

        String IP = s.getInetAddress().getHostAddress();
        System.out.println("IP:"+IP+"...connected");

        // 获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据
        // 这里的源来自对方机器网络数据,
        InputStream is = s.getInputStream();

        byte[] b = new byte[1024];
        int len = is.read(b);
        System.out.println(new String(b,0,len));
//        System.out.println(is.read(b));
        s.close();
    }

JAVA TCP通信(客户端-服务端)

二、互通往来

①客户端

public static void main(String[] args) throws Exception{
    // 创建客户端的socket服务,指定目的主机和端口
    Socket sc = new Socket("172.20.1.34", 10000);
    // 为了发送数据,应该获取socket中的输出流
    OutputStream out = sc.getOutputStream();

    // write接收字节数据
    out.write("第一次握手".getBytes());

    InputStream is = sc.getInputStream();

    byte[] by = new byte[1024];
    int len = is.read(by);//read没读到数据会监听等待
    System.out.println(new String(by, 0 ,len));
    sc.close();

}

②服务端

public static void main(String[] args) throws Exception{
        // 建立服务端Socket服务,并指定监听一个端口
        ServerSocket ss = new ServerSocket(10000);

        // 通过accept方法来获取连接过来的客户端对象

        Socket s = ss.accept();

        String IP = s.getInetAddress().getHostAddress();
        System.out.println("IP:"+IP+"...connected");

        // 获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据
        // 这里的源来自对方机器网络数据,
        InputStream is = s.getInputStream();

        byte[] b = new byte[1024];
        int len = is.read(b);
        System.out.println(new String(b,0,len));
//        System.out.println(is.read(b));
        OutputStream os = s.getOutputStream();
        os.write("第二次握手".getBytes());
        s.close();
        ss.close();
    }

JAVA TCP通信(客户端-服务端)
JAVA TCP通信(客户端-服务端)

相关标签: JAVA java