java 网络编程-TCP-上传文件

Socket 的输入输出流只在服务器和客户端之间运输,所以需要额外的字节流读取文件内容然后Socket流写入,保存时,服务器端的Socket流读取的时候额外的字节流写出到文件

客户端: 上传文件

public class tcp2 {

public static void main(String[]args) throws IOException
{
    System.out.println("客户端启动中");

    Socket client =new Socket("localhost",8888);

    //文件的拷贝
    InputStream is=new BufferedInputStream(new FileInputStream("src\\linux学习路线.png"));
    OutputStream os=new BufferedOutputStream(client.getOutputStream());

    byte[] data=new byte[1024*60];
    int len=-1;
    while((len=is.read(data))!=-1)
    {
        os.write(data,0,len);
    }
    os.flush();
    os.close();

    client.close();

}
}

服务器端:存储文件

public class tcp {

public static void main(String[]args) throws IOException
{
    System.out.println("服务器启动中...");
    ServerSocket server=new ServerSocket(8888);

    Socket client=server.accept();

    //文件的拷贝
    InputStream is=new BufferedInputStream(client.getInputStream());
    OutputStream os=new BufferedOutputStream(new FileOutputStream("D:/d/tu.jpg"));

    byte[] flush=new byte[1024*60];
    int len=-1;

    while((len=is.read(flush))!=-1)
    {
        os.write(flush,0,len);
    }

    is.close();
    os.close();

    client.close();

}
}

原文地址:https://blog.51cto.com/14437184/2433084

时间: 2024-10-13 13:51:10

java 网络编程-TCP-上传文件的相关文章

java开发中截取上传文件的文件名和后缀名

java开发中截取上传文件的文件名和后缀名 /** * Return the extension portion of the file's name . * * @see #getExtension */ public static String getExtension(File f) { return (f != null) ? getExtension(f.getName()) : ""; } public static String getExtension(String f

JAVA网络编程-----tcp

java采用TCP传输时利用Socket和ServerSocket Socket和ServerSocket 建立客户端和服务端 建立连接后,通过Socket中的IO流进行数据的传输. 关闭Socket 同样,客户端与服务端是两个独立的应用程序. 演示tcp传输 1.   tcp分客户端和服务端 2.   客户端对应的对象是Socket,服务端对应的对象是ServerSocket. 客户端: 通过查阅socket对象,发现在该对象建立时,就可以连接指定主机, 因为tcp是面向连接的,所以在建立so

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 Miniui实现批量上传文件demo 201906221520

可能需要的jar包: 需要miniui(类似easyui). Test2019062201.jsp <%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "

【记录】java 阿里oss频繁上传文件报错:网络连接错误,详细信息:Connection pool shut down

问题解析:由于在创建连接的时候@Bean默认是单例的,所以当我们每次上传完后,连接关闭,导致再次上传出现连接错误 解决方式:将bean设置成多例模式 @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE ) 参考资料:https://www.cnblogs.com/IT-study/p/11358832.html 参考资料:https://www.jianshu.com/p/90063e263971 希望能帮助到大家! 原文地址:https

Java网络编程のTCP/IP

TCP/IP参考模型和TCP/IP协议 与OSI参考模型相似,TCP/IP参考模型汲取了网络分层的思想,而且对网络的层次做了简化,并在网络各层都提供了完善的协议,这些协议构成了TCP/IP协议集,简称TCP/IP协议. TCP/IP参考模型分为4个层次:应用层.传输层.网络互连层和主机-网络层.在每一层都有相应的协议.确切地说,TCP/IP协议应该称为TCP/IP协议集,它是TCP/IP参考模型的除了主机-网络层(由第三方提供)以外的其他三层的协议的集合,而IP协议和TCP协议则是协议集中最核心

java模拟http请求上传文件,基于Apache的httpclient

1.依赖 模拟http端的请求需要依赖Apache的httpclient,需要第三方JSON支持,项目中添加 <dependency> <groupId>org.apache</groupId> <artifactId>httpclient</artifactId> <version>4.1.2</version> </dependency> <dependency> <groupId>

TCP 上传文件

package liu.net.udpupload; import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.InputStreamReader; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class 

Java网络编程TCP程序,服务器和客户机交互流程以及基本操作步骤。

1.什么是网络编程 网络编程其实就是实现两个计算机的数据交换(交互). 可以通过直接或间接的通过网络协议与其他的计算机进行通讯.(HTTP协议,TCP/IP协议等) 2.Tcp网络编程的实现流程 主要分为服务器端(Server)和客户端(Client). 通过这个图我们其实就可以了解了实现服务器和客户机交互过程是怎么样的了. 实现这些原理最重要的是Socket类也叫做套接字.应用程序通常通过"套接字"向网络发出请求或者应答网络请求. 服务器端 1.首先创建ServerSocket对象并

java网络编程TCP传输—流操作—服务端反馈与客户端接收

在读取完流后,服务端会向客户端返回一些数据,告诉客户端,已经写完了. 在这里和”流操作—拿到源后的写入动作“差不多,客户端同样以byte与Buffered两种缓冲读取作为例子,同时,.也是希望大家给补充. 1.利用OutputStream向客户端回写,客户端用byte作为缓冲接收 向客户端回写: 1 //获取socket输出流,将上传成功字样传给客户端 2 OutputStream out=s.getOutputStream(); 3 out.write("上传成功".getBytes