zoukankan      html  css  js  c++  java
  • 网络编程练习

    public class test1_server {
        /*
         * 网络编程(练习)
         * 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串
         */
        public static void main(String[] args) throws IOException {
            ServerSocket server = new ServerSocket(54321);
            System.out.println("服务器启动,绑定端口");
            
            while (true) {
                final Socket socket = server.accept();
                new Thread(){
                    public void run() {
                        try {
                            BufferedReader br = 
                                    new BufferedReader(new InputStreamReader(socket.getInputStream()));
                            PrintStream ps = new PrintStream(socket.getOutputStream());
                            String line = br.readLine();
                            line = new StringBuilder(line).reverse().toString();   //字符串反转  链式编程
                            ps.println(line);
                            socket.close();
                        } catch (IOException e) {
                            
                            e.printStackTrace();
                        }    
                    }
                    
                }.start();
            }
        }
    
    }
    public class test1_client {
        /*
         * 网络编程(练习)
         * 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串
         */
        public static void main(String[] args) throws Exception {
            Scanner sc = new Scanner(System.in);
            Socket socket = new Socket("localhost", 54321);
            
            BufferedReader br = 
                    new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintStream ps = new PrintStream(socket.getOutputStream());
        
            ps.println(sc.nextLine());
            System.out.println(br.readLine());
            socket.close();    
        }
    
    }
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileOutputStream;
    import java.io.IOException;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.io.PrintStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.util.Scanner;
    
    public class test2_server {
    
        public static void main(String[] args) throws Exception {        
            ServerSocket server = new ServerSocket(12333);
            
            System.out.println("服务器启动");
            
            while (true) {
                final Socket socket = server.accept();
                new Thread(){
                    public void run() {
                        try {
                            InputStream is = socket.getInputStream();
                            BufferedReader br = 
                                    new BufferedReader(new InputStreamReader(is));
                            PrintStream ps = new PrintStream(socket.getOutputStream());
                            
                            String fileName = br.readLine();   // 读取文件名
                            File dir = new File("update");
                            dir.mkdir();   // 创建文件夹
                            File file = new File(dir, fileName);  // 父及目录   filename
                            if (file.exists()) {
                                ps.println("存在");
                                socket.close();
                                return;
                            } else {
                                ps.println("不存在");
                            }
                            FileOutputStream fos = new FileOutputStream(file);
                            byte[] arr =new byte[8192];
                            int len;
                            while ((len = is.read(arr))!= -1) {
                                fos.write(arr, 0, len);
                            }
                            fos.close();
                            socket.close();
                            
                        } catch (IOException e) {
                            
                            e.printStackTrace();
                        }
                    }
                    
                }.start();
                
            }
        }
    }
    public class test2_client {
    
        public static void main(String[] args) throws Exception {
            File file = getFile();
            Socket socket = new Socket("localhost",12333);
            
            BufferedReader br = 
                    new BufferedReader(new InputStreamReader(socket.getInputStream()));
            PrintStream ps = new PrintStream(socket.getOutputStream());
            
            ps.println(file.getName());   // 将文件名发送给服务器
            String result = br.readLine();
            if ("存在".equals(result)) {
                System.out.println("您上传的文件已存在!请不要重复上传");
                socket.close();
                return;
            } else {
                FileInputStream fis = new FileInputStream(file);
                byte[] arr = new byte[8192];
                int len;
                while ((len =fis.read(arr)) != -1) {
                    ps.write(arr,0,len);
                }
                fis.close();
                socket.close();
            }
        }
    
        private static File getFile() {
            Scanner sc = new Scanner(System.in);
            System.out.println("请输入一个文件路径:");
            
            while (true) {
                String line = sc.nextLine();
                File file = new File(line);
                
                if (file.exists()) {
                    if (file.isDirectory()) {
                        System.out.println("你输入的是文件夹,请重新输入");
                    } else {
                        return file;
                    }
                }else {
                    System.out.println("你输入的文件路径不存在,请重新输入");
                }
            }
        }
    
    }
    竹杖芒鞋轻胜马,一蓑烟雨任平生。 回首向来萧瑟处,也无风雨也无晴。
  • 相关阅读:
    ceph 手工部署
    zstack 搭建部署
    ceph crush
    mini2440动态加载hello.ko模块
    j-flash配置用于烧录mini 2440 nor flash
    (转载)PPP协议规范
    at91sam9263: 定时器
    cyg_io_read返回值是0,因为读到的字节长度在参数中
    read函数
    Linux编译错误:‘cout’在此作用域中尚未声明
  • 原文地址:https://www.cnblogs.com/yaobiluo/p/11357987.html
Copyright © 2011-2022 走看看