`
akka_li
  • 浏览: 19725 次
社区版块
存档分类
最新评论

有两台电脑,我想把一台电脑上的文件拷到另一台上,当中的传输协议要基于HTTP的,谁能给点提示或者示例

 
阅读更多
httpServer + httpClient 下面是个简单的示例

在这个基础上改改。

Java code

package com.fzr.learn;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class EchoService {

    private int port = 8999;

    private ServerSocket serverSocket;

    public EchoService() throws IOException {

        serverSocket = new ServerSocket(port);// 创建tcp服务对象
        System.out.println("服务启动");

    }

    public String echo(String message) {
        return "echo : " + message;
    }

    private PrintWriter getWriter(Socket socket) throws IOException {
        OutputStream socketOut = socket.getOutputStream();
        return new PrintWriter(socketOut, true);
    }

    private BufferedReader getReader(Socket socket) throws IOException {
        InputStream socketIn = socket.getInputStream();
        return new BufferedReader(new InputStreamReader(socketIn));
    }

    public void service() {
        while (true) {
            Socket socket = null;
            System.out.println("11");
            try {
                socket = serverSocket.accept();
                System.out.println("new connection accepted "
                        + socket.getInetAddress() + ":" + socket.getPort());
                System.out.println(socket);
                BufferedReader br = getReader(socket);
                PrintWriter pw = getWriter(socket);
                String message = null;
                System.out.println("22");
                while((message=br.readLine())!=null){
                    System.out.println("33");
                    System.out.println(message);
                    pw.println(echo(message));
                    if(message.equals("bye")){
                        break;
                    }
                }
            } catch (IOException e) {
                e.printStackTrace();
            }finally{
                    try {
                        if(socket!=null){
                            socket.close();
                        }
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
            }

        }
    }
    
    public static void main(String[] args) throws IOException {
        new EchoService().service();
        System.out.println("aa");
    }
    
}


Java code
package com.fzr.learn;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

public class EchoClient {

    private String host = "localhost";
    private int port = 8999;
    
    private Socket socket ;
    
    public EchoClient () throws UnknownHostException, IOException{
        socket = new Socket (host,port);
        
    }
    
    private PrintWriter getWriter(Socket socket) throws IOException {
        OutputStream socketOut = socket.getOutputStream();
        return new PrintWriter(socketOut, true);
    }
    
    private BufferedReader getReader(Socket socket) throws IOException {
        InputStream socketIn = socket.getInputStream();
        return new BufferedReader(new InputStreamReader(socketIn));
    }
    
    public void talk(){
        try {
            BufferedReader br = getReader(socket);
            PrintWriter pw = getWriter(socket);
            BufferedReader localReader = new BufferedReader(new InputStreamReader(System.in));
            String message =null ;
            while((message=localReader.readLine())!=null){
                pw.println(message);
                System.out.println(br.readLine());
                if(message.equals("bye")){
                    break;
                }
            }
        } catch (IOException e) {
            e.printStackTrace();
        }finally{
            try {
                socket.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
        
    }
    
    public static void main(String[] args) throws UnknownHostException, IOException {
        new EchoClient().talk();
    }
    
    
    
}





楼上的,你是通过TCP传输的。。。。


有啊。以下代码是用HttpClient去Get一个你要下载的文件:http://www.mysite.com/download.tar.gz
Java code
public class MyHttpClientGetFile {
    public static String url =
              "http://www.mysite.com/download.tar.gz";

    public static void main(String[] args){

        //创建HttpClient
        HttpClient httpClient = new HttpClient();

        //创建 method instance
        GetMethod getMethod = new GetMethod(url);

        try{

          //执行Get方法
          int statusCode =
                 httpClient.executeMethod(getMethod);

          //读取响应。
          InputStream in =
                 getMethod.getResponseBodyAsStream();

          byte[] b = new byte[1024];//1K缓冲区读
          int len;

          while ((len = in.read(b)) != -1) {
            //将数据写到。。。。 System.out
            //你可改为:存到文件中。
            for(int i = 0; i < len; i++){
                 System.out.print((char)b[i]);
            }
          }

          in.close();

         }catch(HttpException e1){
           //System.out.println(e1);
         }catch(IOException e2){
           //System.out.println(e2);
         }finally{
           //释放连接
           getMethod.releaseConnection();
         }

    }

}


非常谢谢,你这个是下载,我想要的是上传的。
需求是这样的:客户端选择本地文件,然后点击上传。当然中间是通过HTTP上传


转自:http://bbs.csdn.net/topics/310108970
分享到:
评论

相关推荐

    一套键鼠控制多台电脑

    我现在只选用已经在同一局域网下的 Macbook Pro 和 PC 两台电脑,而且为了教程更通用,我把MBP也切换到Win7系统 (就是现在两台电脑都是Win7了),在它们中都安装好 Synergy 之后,那么我们先要挑一台使用键鼠的机器...

    网吧管理软件 远程控制和文件传输

    通过本程序的文件传输功能,你可把文件从一台电脑传到另一台电脑,它不会因为你的权限 而受到任何限制。它比 windows 的文件共享,操作更加简单,传输速度更快。 而且它是一个免费的软件,你可免费的使用和传播...

    计算机网络课程设计 ftp文件传输系统 源代码

    简单的说,FTP就是完成两台计算机之间的拷贝,从远程计算机拷贝文件至自己的计算机上,称之为“下载(download)”文件。若将文件从自己计算机中拷贝至远程计算机上,则称之为“上载(upload)”文件。在TCP/IP协议...

    Go-croc-一个能够轻松在互联网上两台电脑之间安全传输文件的工具

    croc - 一个能够轻松在互联网上两台电脑之间安全传输文件的工具,支持Window

    计算机网络基础课程—文件传输协议(File-Transfer-Protocol).doc

    由FTP提供的文件传输功能是将一个完整的文件从一个系统复制到另一个系统中。 与TELNET类似,FTP也用于两台不同的主机,这两个主机可能运行在不同的操作系统下 ,使用不同的文件结构,并可能使用不同的字符集。但...

    内网文件传输工具.rar

    在两台电脑上运行该软件后, 1. 其中一台选择做服务端,另一台选择做客户端; 2. 服务端监听; 3. 客户端的IP地址框内输入服务端的IP地址; 4. 客户端连接。 连接成功之后就可以传送文件了,步骤如下: 先选择文件...

    基于UDP的数据文件传输系统的实现.zip

    同时,该终端也可以接收其他终端的文件获取申请,如果对方申请的文件在自己终端上,则把文件发送给对方。另外,用户通过终端可以列表和删除本地保存的数据文件。文件的任何变动,都会实时改变服务器上的文件索引。 ...

    C语言作业-基于Socket套接字在两台Linux机器之间传输bmp图像源码.zip

    C语言作业-基于Socket套接字在两台Linux机器之间传输bmp图像源码.zip 【资源介绍】 功能: 主要是实现两台 Linux 机器之间的 bmp 文件传输,建立连接之后,客户端向服务端发送请求的文件 服务端收到请求后查找本地...

    支持IPv4和IPv6双协议的文件传输工具

    理论上两台主机,只要发送方能ping通接收方,发送方就可以给接收方发送文件, 局域网内可以互传; 全校内可以互传; 不同学校可以互传; ADSL宽带用户可以传; 注意:如果双方在不同的内网下是无法传输的,...

    UDP可靠传输文件(UDP网络文件传输)

    本次主要更新在局域网传输时的效率,单向的两台机上传输,基本是5m/s,最高可以达到10m/s以上。 公网上,效率也可以。 qq.24508609 ---------------------------------------------------- sendfile.exe为收发...

    如何在两台笔记本将共享文件

    通过网线组建局域网可以在不同的网络间共享文件

    基于UDP的聊天和TCPIP的文件传输的设计与实现

    通过利用TCP的连接方式实现两台机器之间能够进行文件的传输功能。客户可以通过网络,实现一对一和多对多聊天。要求界面友好,各种操作有提示,并且如果操作错误也能够有提示信息,有防止错误崩溃的信息。

    Python开发基于UDP实现的可靠文件传输协议FDFTP源码+使用说明+设计文档.zip

    Python开发基于UDP实现的可靠文件传输协议FDFTP源码+使用说明+设计文档.zip 环境需求: 1.python3.6 设计文档 设计文档在Docs文件夹下 使用方法: 1.在两台机器上部署好代码,分别将Common/Options内的SERVER_IP...

    用户层和传输层协议分析指导书

    由于系统加载后服务与app其进程号是按加载顺序排序的,因此通信的两台主机很难通过进程号找到对方,因此我们在逻辑上提出了一个Port(端口)的概念,注意,该概念在我们课程中仅限于TCP与UDP传输过程,该概念将逻辑上...

    socket文件传输源码

    比如,我们有两台机器10.190.1.1(A), 10.190.1.2(B),加入都运行windows,想把A的c:foo.dat传到B,并放在B的c:foodst.dat, 则需要在B启动server: olfile -server A启动client进行传输: olfile -src c:foo....

    java实现两台服务器间文件复制的方法

    主要介绍了java实现两台服务器间文件复制的方法,是对单台服务器上文件复制功能的升级与改进,具有一定参考借鉴价值,需要的朋友可以参考下

    python实现简单socket程序在两台电脑之间传输消息的方法

    主要介绍了python实现简单socket程序在两台电脑之间传输消息的方法,涉及Python操作socket的技巧,具有一定参考借鉴价值,需要的朋友可以参考下

    JAVA上百实例源码以及开源项目

     Java数据压缩与传输实例,可以学习一下实例化套按字、得到文件输入流、压缩输入流、文件输出流、实例化缓冲区、写入数据到文件、关闭输入流、关闭套接字关闭输出流、输出错误信息等Java编程小技巧。 Java数组倒置...

    FTP服务器优缺点分析.docx

    FTP的主要作用,就是让用户连接上一个远程计算机(这些计算机上运行着FTP服务器程序)察看远程计算机有哪些文件,然后把文件从远程计算机上拷到本地计算机,或把本地计算机的文件送到远程计算机去。 原理:FTP采用...

    基于C#的FTp服务器

    要想实现FTP文件传输,必须在相连的两端都装有支持FTP协议的软件,提供共享资源的一端叫做FTP服务器端软件。用户联网的首要目的就是实现信息共享,一个功能强大的FTP服务器能提供给我们大量的信息。所以非常有必要...

Global site tag (gtag.js) - Google Analytics