客户端与服务器

* TCP 案例中的客户端。

            在java中,可以使用一个类表示客户端,这个类叫做Socket

            构造方法:
            Socket​(String host, int port): 参数host表示要连接哪台计算机。 参数port表示连接的是哪个应用程序。
            因为Socket表示的是客户端,客户端要连接的是服务器,所以参数要传递服务器的ip和服务器程序的端口号.

            其他方法:
            OutputStream getOutputStream​():获取一个输出流对象。 用来向服务器发送数据(写数据)
            InputStream getInputStream​(): 获取一个输入流对象, 用来读取服务器发送过来的数据(接收数据)
            void close​():释放资源

            TCP案例客户端的实现步骤:
            1. 创建一个客户端Socket对象,并指定要连接服务器的ip地址和端口号。
            2. 调用getOutputStream获取一个输出流,用来向服务器写数据。
            3. 调用输出流的write方法,向服务器发送消息。
            4. 调用getInputStream获取一个输入流,用来读取服务器的数据。
            5. 调用输入流的read方法,读取服务器发送过来的消息。
            6. 关闭Socket
            */
public class Demo01Client {
    public static void main(String[] args) throws IOException {
        //创建一个客户端Socket对象,并指定要连接服务器的ip地址和端口号
        Socket socket = new Socket("127.0.0.1", 9990);
        //调用getOutputStream获取一个输出流,用来向服务器写数据。
        OutputStream out = socket.getOutputStream();
        //调用输出流的write方法,向服务器发送消息
        out.write("你好啊".getBytes());
        //调用getInputStream获取一个输入流,用来读取服务器的数据。
        InputStream in = socket.getInputStream();
        //调用输入流的read方法,读取服务器发送过来的消息。
        byte[] bArr = new byte[1024];
        int len = in.read(bArr);
        System.out.println(new String(bArr, 0, len));
        //释放资源
        socket.close();


    }

}
        tcp案例中的服务器端

        java中,有一个类可以表示服务器,这个类叫做ServerSocket。

        构造方法:
        ServerSocket​(int port): 参数需要传递一个端口号。 此端口号表示的是这个服务器程序的端口号。

        其他方法:
        Socket accept​(): 监听并获取客户端Socket。 等待客户端的请求,如果客户端发来请求,就可以获取到客户端Socket

        TCP服务器端实现步骤:
        1. 创建一个ServerSocket对象,这个对象表示的是服务器
        2. 调用ServerSocket的accept方法,监听并获取一个客户端Socket对象。
        3. 通过客户端Socket对象,获取输入流,用来读取数据。
        4. 调用输入流的read方法,读取数据。
        5. 通过客户度Socket对象,获取输出流,用来写数据。
        6. 调用write方法,写数据。
        7. 释放资源
        */

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

public class Demo02Server {
    public static void main(String[] args) throws IOException {
    //创建一个ServerSocker对象,这个对象表示的是服务器
        ServerSocket serverSocket=new ServerSocket(9990);
        //调用ServerSocket的accept方法,监听并获取一个客户端Socket对象。
        Socket socket = serverSocket.accept();
        //3. 通过客户端Socket对象,获取输入流,用来读取数据。
        InputStream in = socket.getInputStream();
        //4. 调用输入流的read方法,读取数据。
        byte[] bArr = new byte[1024];
        int read = in.read(bArr);
        //通过客户度Socket对象,获取输出流,用来写数据。
        OutputStream out = socket.getOutputStream();
        out.write("我收到了消息".getBytes());
        //释放资源
        socket.close();
        serverSocket.close();


    }
}

猜你喜欢

转载自blog.csdn.net/qq_28761767/article/details/81168905