基于聊天客户端的基础上的文件(TXT文件)传输
客户端代码:
public class UploadClient { public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub //1,创建socket客户端对象 Socket s = new Socket("localhost",10005); //2,读取本地文件 BufferedReader bufr = new BufferedReader(new FileReader("C:\\新建文件夹\\client.txt")); //3,Socket流 PrintWriter out = new PrintWriter(s.getOutputStream(),true); String line = null; while((line=bufr.readLine())!=null){ out.println(line); } //告诉服务端,客户端写完了 s.shutdownOutput(); //4,读取服务端返回的上传成功对象 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream())); String str = bufIn.readLine(); System.out.println(str); //关闭资源 bufr.close(); s.close(); } }
服务端代码:
public static void main(String[] args) throws UnknownHostException, IOException { // TODO Auto-generated method stub //1, ServerSocket ss = new ServerSocket(10005); //2,获取Socket对象 Socket s = ss.accept(); //获取IP System.out.println(s.getInetAddress().getHostAddress()+"....conected"); //3,获取Socket读取流,并装饰 BufferedReader bufIn = new BufferedReader(new InputStreamReader(s.getInputStream())); //4,写入文件 BufferedWriter bufw = new BufferedWriter(new FileWriter("C:\\新建文件夹\\server.txt")); String line = null; while((line=bufIn.readLine())!=null){ bufw.write(line); bufw.newLine();//换行 bufw.flush();//刷新流 } PrintWriter out = new PrintWriter(s.getOutputStream(),true); out.println("上传成功"); bufw.close(); s.close();//关闭客户端 ss.close();//关闭服务端 }
要注意的是TCP传输中,一定要先运行服务端再运行客户端。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对小牛知识库的支持。如果你想了解更多相关内容请查看下面相关链接
在Yii里上传文件通常使用 yii\web\UploadedFile 类, 它把每个上传的文件封装成 UploadedFile 对象。 结合 yii\widgets\ActiveForm 和 models,你可以轻松实现安全的上传文件机制。 创建模型 和普通的文本输入框类似,当要上传一个文件时,你需要创建一个模型类并且用其中的某个属性来接收上传的文件实例。 你还需要声明一条验证规则以验证上传的文件
大多数的 Web 应用都不可避免的,会涉及到文件上传。文件上传,不过是一种适配 HTTP 输入流的方式。 为此,Nutz.Mvc 内置了一个专门处理文件上传的适配器 org.nutz.mvc.upload.UploadAdaptor 这个适配器专门解析形式为 <form target="hideWin" enctype="multipart/form-data" method="post">
哦,上传文件可是个经典的好问题了。文件上传的基本概念实际上非常简单, 他基本是这样工作的: 一个 <form> 标签被标记有 enctype=multipart/form-data ,并且 在里面包含一个 <input type=file> 标签。 服务端应用通过请求对象上的 files 字典访问文件。 使用文件的 save() 方法将文件永久地 保存在文件系统上的某处。 一点点介绍 让我们建立一
Django提供了一些类实现管理数据分页,这些类位于django/core/paginator.py中 Paginator对象 Paginator(列表,int):返回分页对象,参数为列表数据,每面数据的条数 属性 count:对象总数 num_pages:页面总数 page_range:页码列表,从1开始,例如[1, 2, 3, 4] 方法 page(num):下标以1开始,如果提供的页码不存在
SDK 详细代码可参考sdk-java模块代码,位于单元测试文件中 /** * 上传文件,读取本地文件 * * @throws IOException */ @Test public void testUpload() throws IOException { FileUploadRequest request = new F
请求接口时带上文件 客户端调用 DemoFileUploadRequest request = new DemoFileUploadRequest(); DemoFileUploadModel model = new DemoFileUploadModel(); model.setRemark("上传文件参数"); request.setBizModel(model); List<Upload