java socket简单实例

  1.服务端

  • ① 创建ServerSocket对象,绑定监听端口
  • ② 通过accept()方法监听客户端请求
  • ③ 连接建立后,通过输入流读取客户端发送的请求信息
  • ④ 通过输出流向客户端发送相应信息
  • ⑤ 关闭相关资源
    复制代码
     1 package cn.kgc.sockettest.demo1;
     2 
     3 import java.io.*;
     4 import java.net.ServerSocket;
     5 import java.net.Socket;
     6 
     7 /**
     8  * 服务端
     9  *
    10  * @author
    11  * @create 2019-07-23 14:16
    12  **/
    13 public class server {
    14     public static void main(String[] args) {
    15         try {
    16             ServerSocket serverSocket = new ServerSocket(8080);
    17             System.out.println("服务器启动完成...监听启动!");
    18             //开启监听,等待客户端的访问
    19             Socket socket = serverSocket.accept();
    20             // 获取输入流,因为是客户端向服务器端发送了数据
    21             InputStream inputStream = socket.getInputStream();
    22             // 创建一个缓冲流
    23             BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
    24             String info = null;
    25             while ((info = br.readLine())!=null){
    26                 System.out.println("这里是服务端 客户端是:"+info);
    27             }
    28             //向客户端做出响应
    29             OutputStream outputStream = socket.getOutputStream();
    30             info = "这里是服务器端,我们接受到了你的请求信息,正在处理...处理完成!";
    31             outputStream.write(info.getBytes());
    32             outputStream.close();
    33         } catch (IOException e) {
    34             e.printStackTrace();
    35         }
    36     }
    37 }
    复制代码

    2.客户端

  • ① 创建Socket对象,指明需要连接的服务器的地址和端口号
  • ② 连接建立后,通过输出流想服务器端发送请求信息
  • ③ 通过输入流获取服务器响应的信息
  • ④ 关闭响应资源
    复制代码
    package cn.kgc.sockettest.demo1;
    
    import java.io.*;
    import java.net.Socket;
    
    /**
     * 客户端
     *
     * @author
     * @create 2019-07-23 14:17
     **/
    public class Client {
        public static void main(String[] args) {
            try {
                Socket socket = new Socket("localhost",8080);
                OutputStream outputStream = socket.getOutputStream();
                String info = "你好啊!";
                //输出!
                outputStream.write(info.getBytes());
                socket.shutdownOutput();
                //接收服务器端的响应
                InputStream inputStream = socket.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(inputStream));
                while ((info = br.readLine())!=null){
                    System.out.println("接收到了服务端的响应!" + info);
                }
                //刷新缓冲区
                outputStream.flush();
                outputStream.close();
                inputStream.close();
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
  •  复制他人,感觉这个实例易懂,有用

posted @ 2021-03-17 17:34  孤狼奋战  阅读(256)  评论(0编辑  收藏  举报