客户端:
package com.sun;
import java.io.BufferedInputStream;
import java.io.DataInputStream;
import java.io.File;
import java.io.InputStream;
import java.io.RandomAccessFile;
import java.net.InetAddress;
import java.net.Socket;
public class FileClient {
public static void main(String[] args) throws Exception {
// 使用本地文件系统接受网络数据并存为新文件
File file = new File("d:\\def.doc");
file.createNewFile();//地创建一个新的空文件
RandomAccessFile raf = new RandomAccessFile(file, "rw");
// 通过Socket连接文件服务器
Socket server = new Socket(InetAddress.getLocalHost(), 60000);
// 创建网络接受流接受服务器文件数据
InputStream netIn = server.getInputStream();
InputStream in = new DataInputStream(new BufferedInputStream(netIn));
// 创建缓冲区缓冲网络数据
byte[] buf = new byte[2048];
int num = in.read(buf);
while (num != (-1)) {// 是否读完所有数据
raf.write(buf, 0, num);// 将数据写往文件
raf.skipBytes(num);// 顺序写文件字节
num = in.read(buf);// 继续从网络中读取文件
}
in.close();
raf.close();
}
}
服务端:
package com.sun;
import java.io.BufferedOutputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class FileServer {
public static void main(String[] args) throws Exception {
String fileName = "d:\\abc.doc";
File file = new File(fileName);// 创建文件流用来读取文件中的数据
FileInputStream fos = new FileInputStream(file);
ServerSocket ss = new ServerSocket(60000);// 创建网络服务器接受客户请求
Socket client = ss.accept();
OutputStream netOut = client.getOutputStream();// 创建网络输出流并提供数据包装器
OutputStream doc = new DataOutputStream(new BufferedOutputStream(netOut));
// 创建文件读取缓冲区
byte[] buf = new byte[2048];
int num = fos.read(buf);
while (num != (-1)) {// 是否读完文件
doc.write(buf, 0, num);// 把文件数据写出网络缓冲区
doc.flush();// 刷新缓冲区把数据写往客户端
num = fos.read(buf);// 继续从文件中读取数据
}
fos.close();
doc.close();
}
}
分享到:
相关推荐
用JAVA实现的文件上传,控制台输入,保存到数据库
利用Java的Socket实现了文件传输功能。 可以传输各种大小的文件(KB,MB,GB)。 分为两个文件:Server和Client,可以直接运行。
java socket在传输文件时,分包、组包和校验。 校验包数据,现成的代码可以拷贝直接运行。
java socket 大文件传输,快速传输, 数据包的分片,组装,涉及UDP,TCP传输技术,NIO非阻塞等等,适合对socket编程进一步学习的同学
采用java socket编程,利用Internet传输各种类型的文件,在传输过程中数据完整,传输速度快等优点。
Java基于Socket文件传输示例Java基于Socket文件传输示例Java基于Socket文件传输示例
基于java nio socket 的文件传输例程
Java Socket传输图片源代码;短小精悍,适合初学者学习参考使用
java socket 简单的文件传输程序,只是实现了基本功能而已。
Java基于Socket实现局域网文件传输,此文件包含了Eclipse项目源码和已经打包好了的.jar文件(文件发送端和文件接收端)。 处在同一局域网内的两台主机,一台运行sender.jar文件(发送端),另一台运行receiver.jar...
自己写的东东,已经打成jar包,java socket的聊天和文件传输的工具,暂不提供源代码,有兴趣可以反编译。
Java Socket编程 PC端程序 用来传输文件 包括服务器、客户端
java-socket传输文件-图片-源码 我试过本地和局域网传输文件。 按理说,网络传输也是可以的。 效率可以。还可以写成线程操作
计算机网络 作业实例 Java socket编程 文件传输
socket 文件传输编程 java 多线程
合并了聊天和文件传输功能,能够一边传输文件一边聊天,在局域网已经初步测试。并附上源代码和简单的说明。
Java基于Socket文件传输示例:服务器端和客户端
在Unix/Linux/Windows环境下,通过Socket方式实现一个基于Client/Server或P2P模式的文件传输程序。
Java基于Socket文件传输示例:服务器端和客户端
Java基于Socket实现文件传输示例