Java TCP编程(实现方式一)

  • java支持TCP和UDP通信协议的实现类

  • 利用套接字(Socket)开发网络应用程序

  • 通信的两端都要有Socket,是两台机器之间的端点

  • 网络通信其实就是Socket之间的通信

  • Socket允许程序把网络连接当成一个流,数据在两个Socket之间以IO传输

使用TCP编程的主要步骤如下:

1.客户端Socket的工作过程

①创建Socket

②连接到Socket的输入/输出

③按照一定的协议对Socket进行读/写操作

④关闭Socket

  • 客户端

    package javanetwork.day1;
    ​
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.Socket;
    ​
    public class Client {
    ​
        /*
           创建客户端
         */
        public static void main(String[] args) throws IOException {
    ​
            //创建客户端Socket,创建时3次握手建立,连接
            Socket socket = new Socket("192.168.43.149",9999);
            /*
              这里需要抛出一个IOException
            */
    ​
            //客户端向服务器发送信息
            OutputStream out = socket.getOutputStream();
            out.write("你好服务器".getBytes("utf-8"));
    ​
            //接收服务器端发送的信息
            InputStream in = socket.getInputStream();
            byte[] bytes = new byte[100];
            int len = in.read(bytes);
            System.out.println(new String(bytes,0,len,"utf-8"));
        }
    }

2.服务器端的程序的工作过程

①调用ServerSocket();

②调用accept();

③调用该Socket对象的getOutputStream()和getInputStream()

④关闭ServerSocket和Socket对象

  • Server端

    package javanetwork.day1;
    ​
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.OutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    ​
    ​
    public class Server {
    ​
        /*
          创建服务器端
        */
        public static void main(String[] args) throws IOException {
    ​
            //建立服务
            ServerSocket serverSocket = new ServerSocket(9999);
            System.out.println("服务器启动了!");
    ​
            //监听有没有客户端尝试连接服务器
            Socket socket = serverSocket.accept();
            System.out.println("客户端连接成功!");
    ​
            //接收客户端发送的信息
            InputStream in = socket.getInputStream();
            OutputStream out = socket.getOutputStream();
            byte[] bytes = new byte[100];
            int len = in.read(bytes);
            //byte转为字符串
            String s = new String(bytes,0,len,"utf-8");
            System.out.println(s);
    ​
            //从服务器端向客户端发送信息
            out.write("你好客户端".getBytes("utf-8"));
        }
    ​
    }
    ​

这样我们就建立起来了服务器端与客户端之间的连接,就可以在客户端与服务器端之间实现通信

你可能感兴趣的:(网络编程,java,后端,开发语言)