zoukankan      html  css  js  c++  java
  • 026.4 网络编程 上传文本

    一般是已经封装好的jar包里面,这里通过原始步骤实现一下这个功能

    ##############################################################################
    客户端步骤:
    1、确定连接地址和端口
    2、读取文件
    3、获取socket输出流
    4、发送
    5、向服务器发送结束标记,让服务器结束读取动作
    6、接收返回信息
    7、关闭资源

    ###UploadTextClient.java

    public class UploadTextClient {
        /**
         * @param args
         * @throws IOException 
         * @throws UnknownHostException 
         */
        public static void main(String[] args) throws UnknownHostException, IOException {
            System.out.println("上传文件客户端运行......");
            // 客户端:
            // 步骤:
            // 1,创建socket,明确地址和端口。
            Socket s = new Socket("192.168.1.223", 10006);
    
            // 2,源:读取文本文件。获取需要转换的数据。
            BufferedReader bufr = new BufferedReader(new FileReader("tempfile\client.txt"));
            
            // 3,目的:网络,socket输出流。将录入的数据发送到服务端。
            PrintWriter out = new PrintWriter(s.getOutputStream(),true);
            
            // 4,频繁的读写操作。
            String line = null;
            while((line=bufr.readLine())!=null){
                out.println(line);
            }
            
            //给服务端发送一个结束标记。这个标记是约定标记。有点麻烦。可以更简单。使用socket对象的shutdownOutput();
            s.shutdownOutput();//向服务端发送了结束标记。可以让服务端结束读取的动作。
            
            // 5,源:socket,socket读取流,读取服务端发回来的上传成功信息。
            BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream()));
            String info = bufIn.readLine();
            System.out.println(info);
            
            // 6,关闭资源。
            bufr.close();
            s.close();
        }
    
    }

    ###########################################################################################
    服务端步骤:
    1、建立服务端socket
    2、接收客户端socket
    3、建立文件对象
    4、多次接收,写入
    5、返回接收完毕信息
    6、关闭资源

    ###UploadTextServer.java

    public class UploadTextServer {
        /**
         * @param args
         * @throws IOException 
         */
        public static void main(String[] args) throws IOException {
    
    
            System.out.println("上传文本服务端运行....");
            // 服务端:
            // 思路:
            // 1,创建服务端socket 明确端口。
            ServerSocket ss = new ServerSocket(10006);
            while (true) {
                // 获取客户端对象。
                Socket s = ss.accept();
                System.out.println(s.getInetAddress().getHostAddress()+".....connected");
    
                // 2,源:socket输入流。读取客户端的发过来的数据。
                BufferedReader bufIn = new BufferedReader(new InputStreamReader(
                        s.getInputStream()));
    
                // 3,目的:文件。
                PrintWriter pw = new PrintWriter(new FileWriter("tempfile\server.txt"),true);
    
                // 4,频繁的读写操作。
                String line = null;
                while ((line = bufIn.readLine()) != null) {
    //                if("over".equals(line)){
    //                    break;
    //                }
                    pw.println(line);
                }
                
                // 5,发回给客户端上传成功字样。
                PrintWriter out = new PrintWriter(s.getOutputStream(),true);
                out.println("上传成功");
                
                // 6,关闭客户端。
                s.close();
            }
        }
    }
  • 相关阅读:
    【转】mxGraph教程-开发入门指南
    利用IPC通道进行进程间通信(C#)
    C++引用指针 & 构造函数
    MySQL配置主主及主从备份
    MySQL 主从热备份(读写分离)
    SqlServer双机热备技术实践笔记
    c#中的弱引用:WeakReference
    px、em、rem、%、vw、vh、vm这些单位的区别
    深浅clone
    JavaScript-原始值和引用值
  • 原文地址:https://www.cnblogs.com/-nbloser/p/9783057.html
Copyright © 2011-2022 走看看