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

有两台电脑,我想把一台电脑上的文件拷到另一台上,当中的传输协议要基于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
分享到:
评论

相关推荐

    基于QT的局域网文件传输

    【基于QT的局域网文件传输】是一种使用C++编程语言和QT库实现的本地网络文件共享技术。QT是一个跨平台的应用程序开发框架,广泛应用于桌面、移动和嵌入式设备,提供了丰富的图形用户界面(GUI)工具和网络通信功能。...

    基于Bluetooth OBEX协议的文件传输应用的研究

    以蓝牙设备间的文件传输为例,当一设备(Client)想要向另一设备(Server)发送文件时,首先通过用户界面发出PUT请求,应用程序随后调用OBEX层API,建立传输层和OBEX层的连接。在此过程中,数据包被打包并通过无线...

    FTP协议文件传输系统

    FTP(File Transfer Protocol)协议是Internet上用于在不同计算机之间进行文件传输的标准协议。它允许用户从一台远程主机上传或下载文件到本地主机,而无需了解底层网络的细节。FTP协议基于TCP/IP协议栈,提供了可靠...

    行业分类-设备装置-两台电脑设备之间的文件拷贝方法.zip

    用户只需将需要传输的文件复制到USB设备上,然后将其插入另一台电脑的USB端口,再进行复制粘贴操作。这种方法简单、无需网络连接,但速度受限于USB设备的读写速度,且文件大小和数量受到USB存储空间的限制。 其次,...

    不联网用一根网线实现两个电脑之间资料互拷(具体方法)

    在IT领域,有时候我们需要在没有网络连接的情况下,将一台电脑上的数据传输到另一台电脑上。标题和描述中提到的方法,就是通过一根网线来实现两台电脑之间的资料互拷,这种技术通常被称为直连以太网(有时也称为交叉...

    用于2台电脑之间传输文件的飞鸽传书

    飞鸽传书是一款高效、便捷的文件传输工具,尤其适合在两台计算机之间进行大文件或大量文件的快速传输。这种技术充分利用了局域网(LAN)的高速数据传输能力,避免了传统方法如USB闪存驱动器(U盘)传输的不便与速度...

    怎样不联网在两台电脑之间传输大文件

    在不联网的情况下,要在两台电脑之间传输大文件,可以采用建立本地局域网的方式,这种方法对于不具备高速互联网连接或者为了保证数据完整性的人来说是一个理想的选择。以下是对标题和描述中涉及知识点的详细说明: ...

    如何向windows跳板机上传输文件

    "如何向windows跳板机上传输文件" 在实际工作中,我们经常需要将文件上传到windows跳板机中,但是这项操作对于很多人来说仍然是一个挑战。那么,如何向windows跳板机上传输文件呢?下面我们将对此进行详细的介绍。 ...

    使用1394火线连接两台电脑传输文件

    6. **传输文件**:详细说明如何从一台电脑的共享文件夹中拖放文件到另一台电脑,或者使用复制/粘贴命令进行传输。 7. **故障排查**:列出可能遇到的问题和解决方法,比如传输速度慢、无法连接或访问权限错误等。 ...

    基于Python的网络传输文件功能的设计与实现.pdf

    根据提供的文件信息,我们可以了解到《基于Python的网络传输文件功能的设计与实现》一文所涉及的关键知识点。 首先,Python作为一种程序设计语言,其流行的主要原因在于其简单易学的语法以及代码的简洁性。Python的...

    基于超级终端两台电脑之间的串口通讯

    在实际操作中,你可以通过超级终端发送测试数据,然后在另一台电脑上接收并查看,以确认串口通讯是否正常。如果出现通讯问题,检查接线是否正确,串口参数是否匹配,以及硬件设备是否工作正常。 总之,基于超级终端...

    用于局域网内的C#实现文件传输

    在局域网内实现文件传输是一项常见的需求,尤其是在开发多设备协作或共享资源的应用时。C#作为一种功能强大的编程语言,提供了丰富的库和API来处理网络通信和文件操作,使得在局域网内的文件传输变得相对简单。下面...

    VB中基于TCP/IP协议的点对点文件传输

    实例中有两台计算机,一台作为服务器端,一台作为客户端,实现的功能是将服务器端的某一文件传送到客户端。 9. 文件传输原理:文件传输的原理是将发送方的文件信息发送给接收方,然后,建立和文件一样大小的数据...

    Wifi热点实现文件传输

    2. 连接热点:另一台手机搜索并连接这个热点。 3. 安装文件共享应用:如AirDroid、Shareit等,这些应用支持通过Wi-Fi热点进行文件传输。 4. 分享文件:在应用中选择要分享的文件,指定接收设备,然后开始传输。 四...

    两台机器之间的文件传输

    SSH是一种网络协议,用于安全地远程登录到另一台计算机,执行命令,传输文件等。它通过加密所有数据,包括用户名、密码和传输的数据,来提供安全性。SSHSecureShellClient-3.2.9.exe可能是SSH客户端的软件,允许用户...

    Unity局域网传输文件功能源码.rar

    "Unity局域网传输文件功能源码.rar"是一个包含服务端和客户端代码的压缩包,它提供了在局域网环境中交换文件的能力。 首先,我们需要理解局域网通信的基本原理。局域网是一种让多台设备在有限地理范围内的网络连接...

    一根网线使两台电脑互传资料

    "一根网线使两台电脑互传资料" 本文将详细介绍如何使用一根网线使两台电脑互传资料,讨论网线的连接方法、网线的制作、交叉网线的应用等。 一、网线连接方法 网线连接方法有两种:直通和交叉。直通网线与我们平时...

    Python_安全地把东西从一台电脑传到另一台电脑.zip

    标题中的“Python_安全地把东西从一台电脑传到另一台电脑”暗示了我们要讨论的是使用Python编程语言来实现安全的文件传输。Python提供多种库和方法,使得开发者能够构建安全、可靠的数据传输系统,特别是在不同设备...

    一套键鼠控制多台电脑

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

    定时复制文件到指定电脑

    考虑到网络安全,如果两台电脑不在同一个局域网内,可能需要配置远程访问(如SSH)或者通过FTP/SFTP进行文件传输。此外,为了确保数据的一致性和完整性,通常会在复制过程中采用校验和对比,避免因网络问题导致的...

Global site tag (gtag.js) - Google Analytics