1、Server

import java.io.DataInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket; public class Server
{
private ServerSocket serverSocket; private DataInputStream in; private FileOutputStream out; public Server(int port) throws IOException
{
serverSocket = new ServerSocket();
} public void receiveFile(String destFile) throws IOException
{
Socket socket = serverSocket.accept();
DataInputStream in = new DataInputStream(socket.getInputStream()); out = new FileOutputStream(destFile);
int length = in.readInt();
System.out.println("receiveLength:"+length); byte[] buffer = new byte[];
int end = ;
while ((end = in.read(buffer)) > )
{
out.write(buffer, , end);
out.flush();
}
}
public void close()
{
try{
try{
if (in != null) in.close();
}
finally{
try{
if (out != null) out.close();
}
finally{
serverSocket.close();
}
}
}catch (IOException e){
// ignore
} } public static void main(String[] args) throws IOException
{
Server server = new Server();
try{
server.receiveFile("c:/dest.txt");
}finally{
server.close();
}
}
}

2、Client

import java.io.DataOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException; public class Client
{
private Socket socket; private FileInputStream input; private DataOutputStream output; public Client(String IP, int port) throws UnknownHostException, IOException
{
this.socket = new Socket(IP, port);
output = new DataOutputStream(socket.getOutputStream());
} public void sendFile(String fileName) throws IOException
{
input = new FileInputStream(fileName);
// 获得文件长度
int fileLength = input.available();
System.out.println("file length:" + fileLength);
output.writeInt(fileLength);
// 读取文件,写入socket
byte[] buffer = new byte[];
int bufferLength = ;
while ((bufferLength = input.read(buffer)) > )
{
output.write(buffer, , bufferLength);
}
} public void close()
{
try{
try{
if (input != null) input.close();
}
finally{
try{
if (output != null) output.close();
}
finally{
socket.close();
}
}
}catch (IOException e){
// ignore
} } public static void main(String[] args) throws UnknownHostException, IOException
{
Client client = new Client("127.0.0.1", );
try
{
client.sendFile("c:/src.txt");
}
finally
{
client.close();
}
}
}

[Socket]Socket文件传输的更多相关文章

  1. 洗礼灵魂,修炼python(86)--全栈项目实战篇(12)—— 利用socket实现文件传输/并发式聊天

    由于本篇博文的项目都很简单,所以本次开个特例,本次解析两个项目,但是都很简单的 项目一:用socket实现文件传输 本项目很简单,作为小项目的预热的,前面刚学完socket,这里马上又利用socket ...

  2. Java简单文件传输 socket简单文件传输示例

    服务器端代码: import java.io.*; import java.net.*; /** * Created with IntelliJ IDEA. * User: HYY * Date: 1 ...

  3. socket实现文件传输

    server:===========================================import socketimport structimport jsonsk = socket.s ...

  4. python socket实现文件传输(防粘包)

    1.文件传输的要点: 采用iterator(迭代器对象)迭代读取,提高读取以及存取效率: 通过for line in file_handles逐行conn.send(): 2.socket粘包问题: ...

  5. Java开发笔记(一百一十五)使用Socket开展文件传输

    前面介绍了怎样通过Socket在客户端与服务端之间传输文本,当然Socket也支持在客户端与服务端之间传输文件,因为文件本身就是通过I/O流实现读写操作的,所以在套接字的输入输出流中传输文件真是再合适 ...

  6. Java学习笔记——Socket实现文件传输

    我越是逃离,却越是靠近你. 我越是背过脸,却越是看见你. 我从你开始, 我在你结束. 需求:实现局域网下socket传输文件. 客户端步骤: 1.建立与服务器的连接 2.创建client输出流 3.创 ...

  7. JAVA Socket:文件传输

    客户端:读取文件(FileInputStream),发送文件(OutputStream) 服务器端:接收文件(InputStream),写文件(FileOutputStream) 客户端代码: pac ...

  8. windows环境下使用C++&Socket实现文件传输

    server #include <stdio.h> #include <iostream> #include <cstring> #include <fstr ...

  9. Java基于Socket文件传输示例(转)

    最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步的了解.在一位网友提供的程序基础上,俺进行了一些加工,采用了缓冲输入/输出流来包装输出流,再采用数据输入/输出输出流进行包装,加 ...

  10. Java基于Socket文件传输示例

    http://www.blogjava.net/sterning/archive/2007/10/13/152508.html 最近需要进行网络传输大文件,于是对基于socket的文件传输作了一个初步 ...

随机推荐

  1. SQL Server 2012 读写分离设置 - AlsoIn

    原文转至:http://www.tuicool.com/articles/a6rmiam/ 引用: http://technet.microsoft.com/zh-cn/library/jj16176 ...

  2. Dota 2 中安装包的作用

    在玩data 2 的时候有很多其他安装包的下载,那这些有啥用呢? Reborn是Dota2的重生客户端,也就是主客户端. Opengl是显卡优化的,应该是微软的一个标准,有助于提高游戏的 FPS. V ...

  3. 在 Android 手机上运行 Python 程序

  4. javascript闭包—围观大神如何解释闭包

    闭包的概念已经出来很长时间了,网上资源一大把,本着拿来主意的方法来看看. 这一篇文章 学习Javascript闭包(Closure) 是大神阮一峰的博文,作者循序渐进,讲的很透彻.下面一一剖析. 1. ...

  5. 英语初级学习系列-00-Name-介绍自己

    1. 询问名字 常用句子 1. Hi, may I have your name, please? 2. Could you please tell me your name? 3. Will it ...

  6. Team Dipper

    Team Dipper Dipper 来自追梦的7星,We Are From Now On! 说什么?图小了?没问题满足你! No.1 沉默深邃之境的术士,源自奥术之境的PHP探寻者 03150225 ...

  7. i.s.h.med Enhancement for cancelling an appointment

    This article intends to introduce my experience about enhancement for canceling an appointment. I tr ...

  8. metamask源码学习-background.js

    这个就是浏览器后台所进行操作的地方了,它就是页面也区块链进行交互的中间部分. metamask-background描述了为web扩展单例的文件app/scripts/background.js.该上 ...

  9. python中.py和.pyw文件的区别

    :本文为博主原创文章,未经博主允许不得转载. 以下是摘录自百度问题的答案: 严格来说,它们之间的不同就只有一个:视窗运行它们的时候调用不同的执行档案. 视窗用 python.exe 运行 .py ,用 ...

  10. MP实战系列(一)之入门框架搭建和使用

    mybatis plus官网:https://github.com/baomidou/mybatis-plus 上面有对应的实际例子,直接导入即可用. mybatis plus官方的怎么介绍,我就不在 ...