文件的远程接收与发送是一个什么样的概念??用socket编程不可以的吗?

解决方案 »

  1.   

    传送:
          /*以tcp协议传送文件*/
          byte[] tmpData = new byte[1];
          File sourFile = new File(textField3.getText().trim()); //文件源地址
          if (!sourFile.exists()) {
            System.out.println("对不起,欲传送文件不存在!");
            return;
          }
          try {
            Socket tcpSocket = new Socket(ip,port); //设置目的主机及端口        BufferedInputStream fileObj = new BufferedInputStream(new
                FileInputStream(文件路径,8192);
            BufferedOutputStream opStream = new BufferedOutputStream(tcpSocket.
                getOutputStream(), 8192);//初始化传送端输出流对象
            while (fileObj.read(tmpData) != -1) {
              opStream.write(tmpData); //输出流
            }
            opStream.flush();
            opStream.close();
            fileObj.close();
            tcpSocket.close();
            System.out.println("文件传送完毕!");
          }
          catch (FileNotFoundException ecp) {
            System.out.println("Ecp4");
          }
          catch (UnknownHostException ecp) {
            System.out.println("Ecp5");
          }
          catch (IOException ecp) {
            System.out.println("Ecp6");
          }
    文件接受:
        /*以tcp协议接收文件*/
        byte[] theData = new byte[1];
        try {
          ServerSocket serverTCP = new ServerSocket(1981); //用1981端口进行接收
          //接收端口处于监听的状态
          while (true) {
            Socket connSocket = serverTCP.accept();//初始化接收端Socket
            BufferedInputStream serverInput = new BufferedInputStream(connSocket.
                getInputStream(), 8192); //初始化接收流对象        File theTar = new File(文件路径);//接收端文件存盘路径
            File tarParent = theTar.getParentFile();
            if ( (tarParent != null) && !tarParent.exists()) {
              tarParent.mkdirs(); //若目录不存在则自动生成目录
            }
            BufferedOutputStream FileObj = new BufferedOutputStream(new
                FileOutputStream(theTar), 8192);
            while (serverInput.read(theData) != -1) { //从网络读取流
              FileObj.write(theData); //接收端写文件
            }
            FileObj.flush();
            FileObj.close();
            serverInput.close();
            connSocket.close();
            System.out.println("接收了一个文件!");
          }
        }
        catch (InterruptedException ecp) {
          System.out.println("Ecp1");
        }
        catch (FileNotFoundException ecp) {
          System.out.println("Ecp2");
        }
        catch (IOException ecp) {
          System.out.println("Ecp3");
        }
      }