zoukankan      html  css  js  c++  java
  • Socket通信实现步骤

    public class Server {
    
        public static void main(String[] args) {
            
            try {
                ServerSocket serverSocket = new ServerSocket(8888);
                System.out.println("服务器启动中....");
                //accept()是在一个套接口接受的一个连接。accept()是c语言中网络编程的重要的函数,
                //本函数从s的等待连接队列中抽取第一个连接,创建一个与s同类的新的套接口并返回句柄。
                Socket socket = serverSocket.accept();//获取Socket
                InputStream is = socket.getInputStream();//获取输入流
                InputStreamReader isr = new InputStreamReader(is);//InputStreamReader类是从字节流到字符流的桥接器
                BufferedReader br = new BufferedReader(isr);//缓冲流
                System.out.println("客户端数据" + br.readLine());
                String info = null;
                while((info = br.readLine()) != null){
                    System.out.println("客户端传递的信息" + info);
                }
                socket.shutdownInput();//shutdownInput和shutdownOutput只关闭相应的输入、输出流,不会同时关闭网络连接的功能。
                OutputStream os = socket.getOutputStream();
                PrintWriter pw = new PrintWriter(os);
                pw.write("欢迎您!!");
                pw.flush();//flush()是清空,而不是刷新    将缓冲区的内容输出
                
                pw.close();
                os.close();
                br.close();
                isr.close();
                is.close();
                socket.close();
                serverSocket.close();
            } catch (IOException e) {
                System.out.println(e.getMessage());
                e.printStackTrace();
            }
            
        }
        
    }
    public class Client {
        
        public static void main(String[] args) {
            try {
                Socket socket = new Socket("localhost", 8888);
                System.out.println("客户端启动中....");
                OutputStream os = socket.getOutputStream();
                PrintWriter pw = new PrintWriter(os);
                pw.write("admin");
                pw.flush();
                socket.shutdownOutput();
                
                InputStream is = socket.getInputStream();
                BufferedReader br = new BufferedReader(new InputStreamReader(is));
                String info = null;
                while((info = br.readLine()) != null){
                    System.out.println("服务端返回的信息" + info);
                }
                
                os.close();
                pw.close();
                is.close();
                br.close();
                socket.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
    }
  • 相关阅读:
    LeetCode 230. Kth Smallest Element in a BST
    LeetCode 114. Flatten Binary Tree to Linked List
    LeetCode 222. Count Complete Tree Nodes
    LeetCode 129. Sum Root to Leaf Numbers
    LeetCode 113. Path Sum II
    LeetCode 257. Binary Tree Paths
    Java Convert String & Int
    Java Annotations
    LeetCode 236. Lowest Common Ancestor of a Binary Tree
    LeetCode 235. Lowest Common Ancestor of a Binary Search Tree
  • 原文地址:https://www.cnblogs.com/ch94/p/10155590.html
Copyright © 2011-2022 走看看