TCP通信(上传文件)

package demo04;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.Socket;

public class TCPclient {
    public static void main(String[] args) throws IOException {
        //1.创建socket对象,连接服务器
        Socket s =new Socket("127.0.0.1", 8765);
        //2.通过套接字获取输出流
        OutputStream out =s.getOutputStream();
        //3.获取数据源
        FileInputStream fis =new FileInputStream("D:\\test\\aaa.png");
        //4.读数据
        int len =0;
        byte [] b =new byte [1024];
        while((len =fis.read(b))!=-1){
            //写入目的地
            out.write(b,0,len);
        }
        s.shutdownOutput();
        //接受服务器回复
        InputStream in =s.getInputStream();
        len =in.read(b);
        System.out.println(new String(b ,0,len));
        //释放资源
        fis.close();
        s.close();
    }
}
package demo04;

import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.util.Random;

import org.xml.sax.InputSource;

public class TCPserver{
    public static void main(String[] args) throws IOException {
        //1.创建服务器套接字绑定接口
        ServerSocket ser =new ServerSocket(8765);
        //2.接受套接字对象
        Socket s =ser.accept();
        //3.获取输入流
        InputStream in =s.getInputStream();
        //4.获取文件夹,如果不存在就创建
        File f =new File("f:\\aaa");
        if(!f.exists()){
            f.mkdirs();
        }
        //5.创建文件输出流
        String filename ="oracle"+System.currentTimeMillis()+new Random().nextInt(99999)+".png";
        FileOutputStream fos =new FileOutputStream(f+File.separator+filename);
        //6.写入数据
        byte  [] b =new byte [1024];
        int len =0;
        while((len =in.read(b))!=-1){
            fos.write(b,0,len);
        }
        //服务器给客服端回复(上传成功)
        OutputStream out=s.getOutputStream();
        out.write("上传成功".getBytes());
        //释放资源
        fos.close();
        s.close();
        ser.close();
    }

}

原文地址:https://www.cnblogs.com/Jxliu/p/9253425.html

时间: 2024-10-10 02:17:43

TCP通信(上传文件)的相关文章

NetworkComms V3 上传文件探讨

在TCP通信中上传文件是一个重要的功能. 在发送文件时,可以创建一个发送文件类,一个文件发送管理类. 接收文件时,可以创建一个文件接收类,一个文件接收管理类. 详细内容见此篇文章:http://www.networkcomms.cn/Article/ViewArticleCom.aspx?ItemID=27832&PageID=1265

TCP上传文件 遇到发现一些问题

public class TCPServerFs implements Runnable{ private Socket s; public TCPServerFs(Socket s) { super(); this.s = s; } @Override public void run() { // TODO Auto-generated method stub //读取文件名 try { InputStream in = s.getInputStream(); //读取上传的文件名 byte[

黑马程序员 【】java学习之路——TCP(三)客户端上传文件到服务器

------- <a href="http://www.itheima.com" target="blank">android培训</a>.<a href="http://www.itheima.com" target="blank">java培训</a>.期待与您交流! ---------- import java.io.*; import java.net.*; class

重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件

原文:重新想象 Windows 8.1 Store Apps (89) - 通信的新特性: 下载数据, 上传数据, 上传文件 [源码下载] 作者:webabcd 介绍重新想象 Windows 8.1 Store Apps 之通信的新特性 下载数据(显示下载进度,将下载数据保存到本地) 上传数据(显示上传进度) 上传文件 示例HTTP 服务端WebServer/HttpDemo.aspx.cs /* * 用于响应 http 请求 */ using System; using System.IO;

Springboot第二篇:与前端fetch通信(关于传输数据上传文件等前后端的处理)

本章讲述的是关于前后端通信关于对应性,前端为react的View,会分传递不同值有不同的处理情况. 首先关于Springboot内的代码变更都是在IndexController.java内,以下是代码: package maven.example.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.Requ

iOS 网络请求 NSURLSession 的上传文件方法

NSURLSession/NSURLConnection的上传文件方法 此篇文章的理论基础主要是与HTTP网络通信协议相关.为集中精力,可以先把TCP/IP协议这些置之不理,也就是先只关注HTTP的请求和响应的结构.HTTP完整的原理内容就此略过.在此只略提相关内容.文中涉及的设计源码可以通过这里获取 https://github.com/wuqingjian2015/uploadHelper,有意者可以去看看. HTTP是干什么用的呢? 先考虑一下以下应用过程: 从客户端向服务器端发起一个请求

HTTP的上传文件实例分析

HTTP的上传文件实例分析 由于论坛不支持Word写文章发帖. 首先就是附件发送怎么搞,这个必须解决.论坛是php的.我用Chrome类浏览器跟踪请求,但是上传的文件流怎么发过去没找到,估计流可能多或者什么的不好显示,只知道发送了文件名字.需要实际了解下post文件,不能只会后台或界面不了解前台数据处理和协议怎么传送数据. 图中:有些相关文章 HTTP请求中的form data和request payload的区别 AJAX POST请求中参数以form data和request payload

php 利用socket上传文件

php 利用socket上传文件 张映 发表于 2010-06-02 分类目录: php 一,利用fsockopen来上传文件 以前我写过一篇关于socket通信原理的博文http://blog.51yip.com/php/673.html有兴趣的朋友可以看看,前面讲的那篇博文,socket的服务器和客户端都是要用php命令来运行的.平常我们上传文件是浏览本地文件,通过一个php程序将文件上传一个地方,这个时候我们用php命令来运行php程序就不方便了.这个时候我们可以用fsockopen来打开

Qt通过HTTP POST上传文件

本文使用Qt Creator用HTTP POST的方法上传文件,并给出一个上传文件的例程. 本文主要客户端,所以对于服务器端程序编写的描述会比较简略 服务器使用Django编写,django服务器接收文件的方法在文章http://www.cnblogs.com/fnng/p/3740274.html中有较为清晰的讲解,我搭建的服务器端程序除了没有网页客户端以及部分变量名称不同以外,基本上与这篇文章的服务器搭建过程一样. 如果服务器端程序发生变化,这篇文章后面给出的客户端例程可能就不再适用.因此如

实现TCP断点上传,后台C#服务实现接收

实现TCP断点上传,后台C#服务实现接收 终端实现大文件上传一直都是比较难的技术,其中涉及到后端与前端的交互,稳定性和流量大小,而且实现原理每个人都有自己的想法,后端主流用的比较多的是Http来实现,因为大多实现过断点下载.但稳定性不能保证,一旦断开,无法续传.所以得采用另一种流行的做法,TCP上传大文件. 网上查找了一些资料,大多数是断点下载,然后就是单独的C#端的上传接收,或是HTTP的,或是只有android端的,由于任务紧所以之前找的首选方案当然是Http先来实现文件上传,终端采用Pos