- 浏览: 69883 次
- 性别:
- 来自: 广州
最新评论
-
jy34521:
谢谢,
JAVA FTP上传 -
nise:
代码不全?
java 网络文件传输 -
VerRan:
谢谢,提供同时对其进行了改造,有时间发到博客希望指点。
JAVA FTP上传 -
yefeng:
不知道用,web上传可不可以用ftp,我试了都不行,还是要经过 ...
JAVA FTP上传 -
sydxide2006:
import java.util.*;
p ...
写程序用pop3收取gmail的邮件
平台要求:<o:p></o:p>
1. Windows或Unix/Linux
2. JAVA/VC/BCB/Delphi
<o:p> </o:p>
功能要求:<o:p></o:p>
1. 通过SOCKET实现点对点的文件交换功能
2. 支持连接握手、登录校验、文件传输请求应答、出错重传等交互的通信协议机制
3. 提供简单的用户界面或命令行界面
java 代码
java 代码
- package filetranslate;
- import java.io.BufferedInputStream;
- import java.io.BufferedOutputStream;
- import java.io.DataInputStream;
- import java.io.DataOutputStream;
- import java.io.File;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.io.RandomAccessFile;
- import java.net.Socket;
- import java.util.HashMap;
- public class FileServ extends Thread{
- Socket sc=null;
- InputStream in =null;
- OutputStream out=null;
- DataInputStream inStream = null;
- DataOutputStream outStream = null;
- BufferedInputStream bn =null;
- BufferedOutputStream bo =null;
- String servercepath="d:/socketserver/";
- String tempfilename=null;
- static int point=0;
- HashMap hs=new HashMap();
- public FileServ(){
- }
- public FileServ(Socket sc){
- this.sc=sc;
- try {
- bn=new BufferedInputStream( new DataInputStream(sc.getInputStream()));
- bo=new BufferedOutputStream(new DataOutputStream(sc.getOutputStream()));
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- /**
- * 接受发送消息
- * @return 返回的消息
- * @throws IOException
- */
- public String receiverMessage() throws IOException {
- int num = 0;
- byte[] br = null;
- br = new byte[2048];
- num = bn.read(br);
- if(num!=-1){
- return new String(br, 0, num);
- }else{
- return null;
- }
- }/**
- * 接受文件
- * @return
- */
- public boolean receviceFile(){
- //使用本地文件系统接受网络数据并存为新文件
- File file=new File(servercepath+tempfilename);
- RandomAccessFile raf=null;
- int count=0;
- try {
- file.createNewFile();
- raf=new RandomAccessFile(file,"rw");
- byte[] buf=new byte[2048];
- int num=bn.read(buf);
- while(num!=(-1)){//是否读完所有数据
- raf.write(buf,0,num);//将数据写往文件
- count=count+num;
- raf.skipBytes(num);//顺序写文件字节
- num=bn.read(buf);//继续从网络中读取文件
- }
- bn.close();
- raf.close();
- } catch (IOException e) {
- hs.put(tempfilename, new Integer(count));
- e.printStackTrace();
- return false;
- }finally{
- if(raf!=null){
- try {
- raf.close();
- } catch (IOException e) {
- return false;
- }
- }
- }
- hs.put(tempfilename, new Integer(count));
- return true;
- }
- /**
- * 接受断点文件
- * @return
- */
- public boolean recevicefollowFile(){
- //使用本地文件系统接受网络数据并存为新文件
- File file=new File(servercepath+tempfilename);
- RandomAccessFile raf=null;
- int count=0;
- try {
- raf=new RandomAccessFile(file,"rw");
- byte[] buf=new byte[2048];
- int num=bn.read(buf);
- while(num!=(-1)){//是否读完所有数据
- raf.skipBytes(point);//顺序写文件字节
- raf.write(buf,0,num);//将数据写往文件
- count=count+num;
- raf.skipBytes(num);//顺序写文件字节
- num=bn.read(buf);//继续从网络中读取文件
- }
- bn.close();
- raf.close();
- } catch (IOException e) {
- hs.put(tempfilename, new Integer(count));
- e.printStackTrace();
- return false;
- }finally{
- if(raf!=null){
- try {
- raf.close();
- } catch (IOException e) {
- return false;
- }
- }
- }
- hs.put(tempfilename, new Integer(count));
- return true;
- }
- /**
- * 发送消息
- * @return 返回的消息
- * @throws IOException
- */
- public void sendMessage(String str) throws IOException {
- byte[] bw = str.getBytes();
- try {
- bo.write(bw);
- bo.flush();
- } catch (IOException e1) {
- e1.printStackTrace();
- }
- }
- /**
- * 关闭流和socket
- *
- */
- public void destory() {
- if (bo != null) {
- try {
- bo.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- if (bn != null) {
- try {
- bn.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- if (sc != null) {
- try {
- sc.close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- }
- public void run() {
- while(true){
- try {
- String str=receiverMessage() ;
- if(str!=null){
- if(str.substring(0, 1).equalsIgnoreCase("1")){
- System.out.println("认证处理");
- String [] strarry=str.split(",");
- if(strarry[1].equalsIgnoreCase("admin")&&strarry[2].equalsIgnoreCase("admin")){
- System.out.println("认证成功");
- sendMessage("ok");
- }else{
- System.out.println("认证失败");
- sendMessage("error");
- }
- }else if(str.substring(0, 1).equalsIgnoreCase("2")){//上传请求处理
- String [] strarry=str.split(",");
- tempfilename=strarry[1].substring(strarry[1].lastIndexOf("/")+1);
- System.out.println("文件接受:文件名为"+tempfilename);
- if(!hs.containsKey(tempfilename)){
- sendMessage("2,ok");
- if(receviceFile()){
- System.out.println("文件接受成功");
- }else{
- System.out.println("文件接受失败");
- }
- break;
- }else{
- sendMessage("2,error,"+((Integer)hs.get(tempfilename)).intValue());
- }
- }else if(str.substring(0, 1).equalsIgnoreCase("3")){//重传处理3,1. 续传3,2
- String [] strarry=str.split(",");
- if(strarry[1].equalsIgnoreCase("1")){
- System.out.println("客户端重新上传文件");
- sendMessage("3,ok");
- File fl=new File(servercepath+tempfilename);
- if(fl.exists())
- {
- fl.delete();
- }
- hs.remove(tempfilename);
- if(receviceFile()){
- System.out.println("文件接受成功");
- }else{
- System.out.println("文件接受失败");
- }
- break;
- }else if(strarry[1].equalsIgnoreCase("2")){
- System.out.println("客户端续传文件");
- sendMessage("3,ok");
- hs.remove(tempfilename);
- if(receviceFile()){
- System.out.println("续传接受成功");
- }else{
- System.out.println("续传接受失败");
- }
- break;
- }
- }
- }
- } catch (IOException e) {
- }
- }
- }
- }
java 代码
- package filetranslate;
- import java.io.*;
- import java.net.*;
- import java.util.HashMap;
- /**
- * 文件传输服务器端口
- * @author sydxide
- *
- */
- public class FileServer {
- ServerSocket ss = null;
- Socket s = null;
- DataInputStream inStream = null;
- DataOutputStream outStream = null;
- String servercepath="d:/socketserver/";
- String tempfilename=null;
- static int point=0;
- HashMap hs=new HashMap();
- public FileServer() {
- try {
- ss = new ServerSocket(5678);
- init();
- } catch (Exception e) {
- System.out.println(e.toString());
- }
- }
- /**
- * 初始化SOCKET
- * @throws Exception
- */
- public void init() throws Exception {
- s = ss.accept();
- System.out.println("客户端连接了服务器 "+s.getInetAddress());
- if(inStream==null){
- inStream = new DataInputStream(s.getInputStream());}
- if(outStream==null){
- outStream = new DataOutputStream(s.getOutputStream());}
- process();
- }
- /**
- * 接受发送消息
- * @return 返回的消息
- * @throws IOException
- */
- public String receiverMessage() throws IOException {
- int num = 0;
- byte[] br = null;
- br = new byte[2048];
- num = inStream.read(br);
- if(num!=-1){
- return new String(br, 0, num);
- }else{
- return null;
- }
- }
- /**
- * 根据接受的参数进行处理
- *
- */
- public void process(){
- while(true){
- try {
发表评论
-
经典的SQL语句
2010-03-21 14:44 1113经典的SQL语句 1. 拷 ... -
JAVA 基础学习
2010-03-10 15:35 8901、JAVA IO a、流读写文件 ... -
java 基础学习
2008-05-26 18:30 904java 中的标识符 java中的包,类,方法,参数和变量的名 ... -
WEBSERVICE代码示例
2008-05-06 11:13 1266将附件部署在中间件上,修改下数据库配置文件,此实例实现了web ... -
javamail smtp 发送邮件
2008-04-28 10:15 2160package com.util.mail; import ... -
Hibernate 多表查询分页核心代码
2007-10-09 20:48 5125java 代码 /** * ... -
现有Mysql数据库,写Spring + Hibernate的配置文件
2007-09-28 10:56 2149数据库IP url: 127.0.0.1<o:p> ... -
写程序用pop3收取gmail的邮件
2007-09-28 10:45 2843入口参数:<o:p></o:p> ... -
写程序模拟通过web界面登录mail.people.com.cn。并通过web界面获得收件箱第一页的邮件列表。
2007-09-28 10:42 4263入口参数:<o:p></o:p> ... -
根据xml schema生成xml
2007-09-28 10:20 11922根据xml schema生成xml<o:p>& ... -
JAVA FTP上传
2007-08-30 13:35 6086java 代码 package common.f ... -
java MD5加密
2007-07-10 15:12 1389java 代码 以下是MD5加密技术.在可能需要的传输数据上需 ... -
Java 文件读写
2007-06-11 17:02 14736package common.fileOperate; imp ... -
Java 文件操作
2007-06-11 17:00 1662package common.fileOperate; im ... -
Java excel 写操作
2007-06-11 16:55 1338package common.excelOprate; imp ... -
Java excel 读操作
2007-06-11 16:54 1303package common.excelOprate; imp ... -
java调用.bat脚本
2007-06-11 16:49 5493mport java.io.IOException; impo ...
相关推荐
Java网络文件传输是一种在计算机网络中通过Java编程语言实现的文件共享技术。它涉及网络通信协议、I/O流处理和多线程等核心概念。在这个主题中,我们将深入探讨Java如何实现这一功能,并通过源代码分析来理解其实现...
Java网络文件传输是一种在两台计算机之间通过网络交换文件的技术,通常涉及到TCP/IP协议栈、套接字编程以及多线程等核心概念。本示例中的"FileTranClient"和"FileTranServer"是两个关键文件,分别代表客户端和服务器...
【Java网络文件传输(C/S)详解】 在网络开发中,文件传输是一项重要的功能,无论是文本文件还是图像文件,都需要能够高效、稳定地在网络之间传递。本文将深入探讨使用Java实现客户端/服务器(C/S)模式的文件传输...
为了编译和运行Java网络文件传输程序,需要执行以下步骤: - 使用`javac`命令编译`.java`源文件,生成`.class`字节码文件。 - 在命令行中,分别使用`java SendFileSocket`启动服务器,和`java SendFileClient ...
本项目以"java实现网络文件传输"为主题,涵盖了服务器和客户端的编程实现,涉及到的关键技术包括Socket编程、接口设计以及源码解析。下面将详细介绍这些知识点。 1. **Java Socket编程**: Java Socket是Java提供...
[毕业设计]JAVA网络文件传输系统的开发(源代码+论文+开题报告)
本知识点将围绕Java网络编程中的Socket通信和文件传输的实现原理进行详细探讨。 1. Java网络编程基础 Java网络编程提供了两个基本的类来实现网络通信,分别是Socket和ServerSocket类。Socket代表客户端的套接字,它...
以下是一个简单的网络文件传输的概述: 1. **服务器端**: - 首先,服务器创建一个`ServerSocket`实例,并绑定到特定的IP地址和端口号,然后调用`accept()`方法开始监听客户端的连接请求。 - 当客户端连接请求...
9. **断点续传**:在实际应用中,文件传输可能需要支持断点续传功能,即在传输中断后可以从上次断开的位置继续传输。这需要服务器和客户端保存并交换已传输的数据状态。 10. **安全性**:对于敏感的文件传输,可以...
Java P2P文件传输利用P2P网络架构,其中每个节点既是服务的消费者也是服务的提供者。在Java中,这通常涉及到创建客户端和服务器端的类,分别用于发起请求和响应请求。这些节点可以动态地加入和离开网络,形成一个去...
Java局域网文件传输源码是一个实用的编程项目,它允许...通过学习和分析这个Java局域网文件传输源码,开发者可以深入理解Java网络编程、文件I/O、多线程以及可能涉及的其他高级技术,对于提升Java编程技能非常有帮助。
5. **断点续传**:在大文件传输时,断点续传功能非常有用。这需要在发送文件时保存已传输的字节数,并在连接恢复时从上次中断的位置继续传输。 6. **进度条显示**:为了让用户了解传输进度,可以在程序中添加进度条...
在实际开发中,如果希望实现类似飞鸽传书的效果,可以考虑实现一个轻量级的文件传输协议,确保文件传输的可靠性和安全性。 项目中的"src"目录下的"ui"包被提到是实验性的,且未被使用。这可能表明项目采用命令行...
Java文件传输工具是一种基于Java开发的应用程序,设计用于实现基本的点对点(P2P)文件传输功能。这个工具提供了简单易用的界面,让用户能够方便地在两台计算机之间共享和移动文件。以下是对该工具核心特性和技术...
在Java编程环境中,大文件传输是一项常见的挑战,尤其是在网络上传输或者处理大量数据时。本示例主要关注如何高效地传输大文件,通过将大文件分解为较小的数据块,然后逐个传输这些小块,最后在接收端进行组装。这种...
本文设计了一个基于FTP协议的Java网络文件传输系统,该系统利用Java的网络编程能力,结合多线程和断点续传技术,提供了高效、安全的文件传输环境。尽管FTP本身存在一些限制,但通过合理的设计和优化,本系统能够满足...
在Java编程语言中,文件传输是一项基础且重要的任务,它涉及到数据的读取、写入以及在网络中的发送和接收。这个“java版文件传输的小程序”可能是为了演示如何使用Java API来实现文件的本地操作或者网络上的文件共享...
Java TCP文件传输是一种基于网络的通信方式,利用TCP(传输控制协议)的可靠连接特性来实现文件在不同设备之间的安全传输。在这个过程中,通常需要创建一个服务器端来监听客户端的连接请求,然后客户端通过建立连接...
Java作为一种广泛应用的编程语言,提供了多种方式实现文件在网络间的传输,其中,基于Socket的文件传输因其高效、稳定的特点而备受青睐。本文将深入探讨基于Java和Socket技术的文件传输原理,并通过一个实际示例,...