客户端:读取文件(FileInputStream),发送文件(OutputStream)

服务器端:接收文件(InputStream),写文件(FileOutputStream)

客户端代码:

package socketCopyFile;
import java.net.*;
import java.io.*;
public class SocketCopyFileC {

    public static void main(String[] args) {
        try {
            Socket s = new Socket("127.0.0.1", 8888);
            System.out.println("getPort:" + s.getPort() + " getLocalPort:" + s.getLocalPort());
            OutputStream ops = s.getOutputStream();
            FileInputStream fis = new FileInputStream("C:/ice.jpg");
            byte[] b = new byte[1024];

            @SuppressWarnings("unused")
            int nLength = -1;
            while ((nLength = fis.read(b)) > 0){
                ops.write(b,0,nLength);
            }

            fis.close();
            ops.close();
            s.close();
        } catch (UnknownHostException e) {

            e.printStackTrace();
        } catch (IOException e) {

            e.printStackTrace();
        }finally{
            System.out.println("客户端Over");
        }

    }

}

服务器端代码:

package socketCopyFile;

import java.net.*;
import java.io.*;

public class SocketCopyFileS {

    public static void main(String[] args) {
        try {
            ServerSocket sSocket = new ServerSocket(8888);
            Socket s = sSocket.accept();
            System.out.println("getPort:" + s.getPort() + " getLocalPort:" + s.getLocalPort());
            InputStream ips = s.getInputStream();
            FileOutputStream fos = new FileOutputStream("D:\\ice.jpg");

            byte[] b = new byte[1024];
            int nLen = -1;
            while(true){
                nLen = ips.read(b);

                if (nLen == -1){
                    break;
                }
                fos.write(b, 0 , nLen);
            }

            fos.close();
            ips.close();

            s.close();
            sSocket.close();

        } catch (Exception e) {

        }finally{
            System.out.println("服务器端,OVER");
        }
    }
}

JAVA Socket:文件传输的更多相关文章

  1. java socket通信-传输文件图片--传输图片

    ClientTcpSend.java   client发送类 package com.yjf.test; import java.io.DataOutputStream; import java.io ...

  2. 基于序列化技术(Protobuf)的socket文件传输

    好像好久都没更博文了,没办法,最近各种倒霉事情,搞到最近真的没什么心情,希望之后能够转运吧. 言归正传,这次我要做的是基于序列化技术的socket文件传输来无聊练一下手. 一.socket文件传输 之 ...

  3. 解决java socket在传输汉字时出现截断导致乱码的问题

    解决java socket在传输汉字时出现截断导致乱码的问题 当使用socket进行TCP数据传输时,传输的字符串会编码成字节数组,当采用utf8编码时,数字与字母长度为1个字节,而汉字一般为3个字节 ...

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

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

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

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

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

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

  7. java实现文件传输

    在windows下装了个linux虚拟机,两者之间传输文件挺麻烦的.写了个简单的文件传输程序,来方便自己数据传送. server 端: import java.io.BufferedReader;im ...

  8. Android连接热点的Socket文件传输

    最近把测试丢过来的种种BUG解决后,终于有时间去研究研究Socket通信,再加上以前做的WiFi连接和热点开启,于是有了现在的这篇博文:创建热点发送文件,让另一台手机连接热点接收文件. 效果图: 两台 ...

  9. Socket 文件传输

    服务端 1.控件:TServerSocket 2.OnClientRead事件处理 procedure TMainForm.ssClientRead(Sender: TObject; Socket: ...

  10. Linux网络编程:socket文件传输范例

    基于TCP流协议的socket网络文件传输Demo: 实现:C语言功能:文件传输(可以传任何格式的文件) /********************************************** ...

随机推荐

  1. [轉]Android的内存泄漏和调试

    一. Android的内存机制 Android的程序由Java语言编写,所以Android的内存管理与Java的内存管理相似.程序员通过new为对象分配内存,所有对象在java堆内分配空间:然而对象的 ...

  2. C/C++ 函数压栈方式

    一,不同关键字,系统压栈方式 1,如果函数func是__cdecl(VC下的默认调用方式),调用时情况如下 int   main()   {   //参数从右到左压栈   push   4   pus ...

  3. 04文件与IO

    文件系统调用: open.close.create.read.write open: int open(const char* path, int flags) path:要打开的文件的路径 flag ...

  4. nova分析(9)—— nova-novncproxy

    nova提供了novncproxy代理支持用户通过vnc来访问虚拟机,用户可以通过websocket.java客户端或者spicehtml5来访问.通过websket访问虚拟机的功能已经集成到hori ...

  5. 遇到 Error creating the Web Proxy specified in the 'system.net/defaultProxy' configuration section的解决办法

    用记事本编辑*.EXE.config,在“<system.net>”节点加入<defaultProxy> <proxy usesystemdefault="Fa ...

  6. Nginx实现内参:为什么架构很重要?

    Nginx在web开发者眼中就是高并发高性能的代名词,其基于事件的架构也被众多开发者效仿.我从Nginx的网站找到一篇技术文章将Nginx是怎样实现的,文章是Nginx的产品老大Owen Garret ...

  7. C#程序集编译输出XML文档的作用

    下图是ClassLib1类库的项目属性 /// <summary> /// 读取INI文件 /// </summary> /// <param name="Se ...

  8. Android三-AsyncTask

    基础介绍:http://blog.csdn.net/liuhe688/article/details/6532519 扩展知识:http://blog.csdn.net/pipisky2006/art ...

  9. 黄聪:wordpress自定义post_type,并且自定义固定链接

    <? class zsjh { function init() { add_action( 'init', array($this,'create_zsjh') ); add_filter('p ...

  10. Camel、Pastal、匈牙利标记法

    原来我一直用的是Camel标记法……收藏学习了. */       Camel标记法采用首字母小写,接下来的单词都以大写字母开头的方法,如myName.       Pastal标记法采用首字母大写, ...