• 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();
            }
        }
    
    }
  • 相关阅读:
    Java关键字:transient,strictfp和volatile简介
    freemarker 数字格式化函数
    使用 BeanCopier 复制对象
    扩展Smack Message
    JavaScript 中2个等号与3个等号的区别
    Eclipse 3.5使用dropins的插件安装方式
    常见的HTTP 状态代码
    使用python操作FTP上传和下载
    Python操作redis
    Ubuntu14.04安装redis和简单配置
  • 原文地址:https://www.cnblogs.com/ch94/p/10155590.html
Copyright © 2020-2023  润新知