上面的只是一个有界面的传输,为了便于说明,我就跟你写一个JAVA传输的小例子,希望对你有所帮助。
传输呢,基本上是要靠Socket,根据TCP/IP协议来传递文件,通过客户端和服务端来实现这个握手协议。
以客户端向服务器端传送文件为例吧: 建立服务器:
import java.io.*;
import .*;
public class Server{
public staitc void main(String[] args) throws Exception{
//建立服务器
ServerSocket ss=new ServerSocket(9999);//给一个可用的端口号。
Socket s=ept();//这里建立阻塞,只有当有客户端连接进来,程序才会往下走。
InputStream input=s.getInputStream();//获取Socket输入流
FileOutputStream fos=new FileOutputStream("文件");//建立文件输出流,接收客户端传递的文件
byte[] buf=new byte[4049];//建立缓冲数组,接收文件时,将字节写入字节数组内部保存
for(int size=0;size!=-1;size=input.read(buf)){//将获得的信息写入字节数组,写入的大小为size
fos.write(buf,0,size); //当size=-1的时候,说明已经读取完毕
fos.flush(); //强制写入内容
}
fos.close();
ss.close();
System.out.println("文件下载完毕!");
}
}
建立客户端:
import java.io.*;
import .*;
public class Client{
public static void main(String[] args) throws Exception{
Socket s=new Socket("127.0.0.1",9999);//利用服务器IP地址和端口为参数,建立和服务器通信
FileInputStream fis=new FileInputStream("文件"); //创造输入流,用于发送需要传递的文件
OutputStream output=s.getOutputStream();//获得Socket输出流
byte[] buf=new byte[4049];//建立缓冲数组,接收文件时,将字节写入字节数组内部保存
for(int size=0;size!=-1;size=fis.read(buf)){)){//将获得的信息写入字节数组,写入的大小为size
output.write(buf,0,size);//当size=-1的时候,说明已经读取完毕
output.flush();//强制将文件发送出去
}
fis.close();
s.close();
System.out.println("文件上传完毕!");
}
}
乌云数据主营高性价比国内外云服务器,物理机,本着机器为主服务为辅的运营理念,将客户的体验放在第一位,提供性价比最高的云服务器,帮助各位站长上云,同时我们深知新人站长的不易,特此提供永久免费虚拟主机,已提供两年之久,帮助了上万名站长从零上云官网:https://wuvps.cn迎国庆豪礼一多款机型史上最低价,续费不加价 尽在wuvps.cn香港cera机房,香港沙田机房,超低延迟CN2线路地区CPU...
Digital-vm是一家成立于2019年的国外主机商,商家提供VPS和独立服务器租用业务,其中VPS基于KVM架构,提供1-10Gbps带宽,数据中心可选包括美国洛杉矶、日本、新加坡、挪威、西班牙、丹麦、荷兰、英国等8个地区机房;除了VPS主机外,商家还提供日本、新加坡独立服务器,同样可选1-10Gbps带宽,最低每月仅80美元起。下面列出两款独立服务器配置信息。配置一 $80/月CPU:E3-...
spinservers是Majestic Hosting Solutions LLC旗下站点,主要提供国外服务器租用和Hybrid Dedicated等产品的商家,数据中心包括美国达拉斯和圣何塞机房,机器一般10Gbps端口带宽,高配置硬件,支持使用PayPal、信用卡、支付宝或者微信等付款方式。目前,商家针对部分服务器提供优惠码,优惠后达拉斯机房服务器最低每月89美元起,圣何塞机房服务器最低每月...