加载中...

Java网络编程Tcp通信

Tcp通信

客户端

步骤:

  1. 创建客户端对象Socket,构造方法绑定服务器的IP地址和端口号
  2. 使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
  3. 使用网络字节输出流OutputStream中的方法write给服务器发送数据
  4. 使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
  5. 使用网络字节输入流中的InputStream对象中的方法read,读取服务器回写的数据
  6. 释放资源Socket

举例:

import java.net.Socket;
import java.io.*;

public class TCPClient {
    public static void main(String[] args) throws IOException{
        //1.创建客户端对象Socket,构造方法绑定服务器的IP地址和端口号
        Socket socket=new Socket("127.0.0.1",8888);
        //2.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
        OutputStream os=socket.getOutputStream();
        //3.使用网络字节输出流OutputStream中的方法write给服务器发送数据
        os.write("你好服务器".getBytes());
        //4.使用Socket对象中的方法getInputStream()获取网络字节输入流InputStream对象
        InputStream is=socket.getInputStream();
        //5.使用网络字节输入流中的InputStream对象中的方法read,读取服务器回写的数据
        byte[] bytes=new byte[1024];
        int len=is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //6.释放资源Socket
        socket.close();
    }
}

服务器

步骤:

  1. 创建服务器ServerSocket对象和系统要指定的端口号
  2. 使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket
  3. 使用Socket对象中的方法getIutputStream()获取网络字节输入流InputStream对象
  4. 使用网络字节输入流InputStream对象中的方法read,读取客户端发送的数据
  5. 使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
  6. 使用网络字节输出流OutputStream对象中的write方法,给客户端回写数据
  7. 释放资源Socket和ServerSocket

举例:

import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;

public class TCPServer {
    public static void main(String[] args) throws IOException {
        //1.创建服务器ServerSocket对象和系统要指定的端口号
        ServerSocket server=new ServerSocket(8888);
        //2.使用ServerSocket对象中的方法accept,获取到请求的客户端对象Socket
        Socket socket=server.accept();
        //3.使用Socket对象中的方法getIutputStream()获取网络字节输入流InputStream对象
        InputStream is=socket.getInputStream();
        //4.使用网络字节输入流InputStream对象中的方法read,读取客户端发送的数据
        byte[] bytes=new byte[1024];
        int len=is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //5.使用Socket对象中的方法getOutputStream()获取网络字节输出流OutputStream对象
        OutputStream os=socket.getOutputStream();
        //6.使用网络字节输出流OutputStream对象中的write方法,给客户端回写数据
        os.write("收到谢谢".getBytes());
        //7.释放资源Socket和ServerSocket
        socket.close();
        server.close();
    }
}
posted @ 2022-03-05 16:00  我没有bug  阅读(34)  评论(0编辑  收藏  举报