TCP协议简单地上传文件代码
public static void main(String [] args) throws Exception{
//创建客户端(以本机为例) [客户端代码]
Socket socket=new Socket("127.0.0.1",6666);
//获取字节输出流,将文件写到服务器
OutputStream os=socket.getOutputStream();
//创建字节输入流,将本机文件读出来
FileInputStream fis=new FlieInputStream("E:/abc.txt");
//读写字节数组
byte [ ] b=new byte [1024];
int len=0;
while((len=fis.read(b))!=-1){
os.write(b,0,len);
}
//给服务器终止序列
socket.shutdownOutput();
获取字节输入流,获取服务器发送的成功上传
InputStream is=socket.getInputStream();
len=is.read(b);
System.out.println(new String(b,0,len));
//关闭流
fis.close();
socket.close();
}
----------------------------------------------------------------------------------------------
//创建服务器端
public static void main(String[] args) throws Exception{
ServerSocket ss=new ServerSocket(6666);
Socket socket=ss.accept();
//获取字节输入流,读取客户端照片
InputStream is=socket.getInputStream();
//将文件夹封装到File对象中,调用其方法判断是否存在
File file=new File("D:/upload");
if(file.exists()){
file.mkdirs();
}
//创建字节输出流,将图片写入本地
FileOutputStream fos=new FileOutputStream(file+File.separator+UUID.randomUUID().toString.replaceAll("-","")+"abc.txt");
//读写字节数组
byte [ ] b=new byte[1024];
int i=0;
while((len=is.read(b))!=1`){
fos.write(b,0,len);
}
//服务器端反馈给用户上传成功
//通过客户端连接对象 获取字节输出流
socket.getOutpuStream(),write("上传成功".getBytes());
//关闭流
fos.close();
socket.close();
ss.close();
}