- 浏览: 426249 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (239)
- java (59)
- JQuery (5)
- oracle (12)
- javascript (14)
- struts1 (1)
- spring (10)
- Quartz (2)
- ibatis (1)
- linux (32)
- weblogic (3)
- ibaits (2)
- servlet (1)
- log4j (5)
- 编程人生 (2)
- apache (3)
- window (3)
- web前端 (25)
- 错误集合 (2)
- 框架配置 (1)
- 开发工具 (15)
- 小插件应用 (1)
- lucene (1)
- sonar (1)
- velocity (1)
- 代码检查 (0)
- error (1)
- jndi (1)
- oracle函数 (1)
- tools (1)
- 代码管理 (3)
- mysql (4)
- maven (9)
- bat (1)
- git (3)
- aix (2)
- freemarker (1)
- svn (2)
- nginx (6)
最新评论
-
masuweng:
f
修改eclipse的内存 -
洞渊龙王:
...
maven-surefire-plugin学习 -
phf717601206:
WEB-INF/lib下就没有servlet-api.jar ...
Unable to read TLD "META-INF/c.tld"错误 -
sziitjiang:
很好,非常不错
Java读写excel之poi -
dengminghua1016:
doris1bruce 写道一、二、 ...
java创建对象的几种方式
服务器端应用
package download; import java.io.BufferedInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; /** * Servlet implementation class A */ public class ServerServlet extends HttpServlet { public static int BUFFER_SIZE = 1024 * 1024; static Runtime get_runtime = Runtime.getRuntime(); @Override protected void doGet(HttpServletRequest req, HttpServletResponse response) throws ServletException, IOException { usedMemory(1); File file = new File("E:/toodou_work/test.csv"); BufferedInputStream in = new BufferedInputStream(new FileInputStream(file)); //实现了一个输出流,其中的数据被写入一个 byte 数组。缓冲区会随着数据的不断写入而自动增长。可使用 toByteArray() 和 toString() 获取数据。 ByteArrayOutputStream out = new ByteArrayOutputStream(BUFFER_SIZE); byte[] temp = new byte[BUFFER_SIZE]; int size = 0; //读入缓冲区的字节总数,如果因为已经到达文件末尾而没有更多的数据,则返回 -1。 while ((size = in.read(temp)) != -1) { out.write(temp, 0, size); } usedMemory(2); in.close(); //Provides an output stream for sending binary data to the client. ServletOutputStream baos = response.getOutputStream(); out.writeTo(baos);// byte 数组输出流的全部内容写入到指定的输出流参数中,这与使用 out.write(buf, 0, count) 调用该输出流的 write 方法效果一样。 out.flush(); } public static void usedMemory(int i) { long l = get_runtime.totalMemory() - get_runtime.freeMemory(); long k = l / 1024; System.out.println(i + ": " + k + " K"); } @Override protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { doGet(req, resp); } }
客户端应用
package download; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import java.io.File; import java.io.FileOutputStream; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.URL; public class SendGetRequest { static String sessionId = ""; static Runtime send_runtime = Runtime.getRuntime(); public static void main(String[] args) throws Exception { ServerServlet.usedMemory(3); URL url = new URL("http://localhost:8080/abc/ServerServlet"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //URL 连接可用于输入和/或输出。如果打算使用 URL 连接进行输入,则将 DoInput 标志设置为 true;如果不打算使用,则设置为 false。默认值为 true。 connection.setDoOutput(true); // Read from the connection. Default is true. connection.setDoInput(true); // Set the post method. Default is GET connection.setRequestMethod("GET"); // URLConnection.setInstanceFollowRedirects是成员函数,仅作用于当前函数 connection.setInstanceFollowRedirects(false); // connection. Settings above must be set before connect! // 配置本次连接的Content-type,配置为application/x-www-form-urlencoded的 // 意思是正文是urlencoded编码过的form参数,下面我们可以看到我们对正文内容使用URLEncoder.encode // 进行编码 connection.setRequestProperty("Content-Type", "application/x-www-form-urlencoded"); connection.setRequestProperty("ENCTYPE", "multipart/form-data"); // 连接,从postUrl.openConnection()至此的配置必须要在connect之前完成, // 要注意的是connection.getOutputStream会隐含的进行connect。 connection.connect(); /*//记录发送请求时间 Long sendTime = System.currentTimeMillis(); DataOutputStream out = new DataOutputStream(connection.getOutputStream()); // 要传的参数 String content = URLEncoder.encode("sendTime", "UTF-8") + "=" + URLEncoder.encode(sendTime.toString(), "UTF-8"); //读海量文件 StringBuilder postStrBuf = new StringBuilder(); for (int i = 0; i < 1; i++) { File file = new File("E:/toodou_work/yuliang.csv"); BufferedReader reader = null; String postStr = null; reader = new BufferedReader(new FileReader(file)); while ((postStr = reader.readLine()) != null) { postStrBuf.append(postStr); } } content = content + "&" + URLEncoder.encode("file", "UTF-8") + "=" + URLEncoder.encode(postStrBuf.toString(), "UTF-8"); // DataOutputStream.writeBytes将字符串中的16位的unicode字符以8位的字符形式写道流里面 out.writeBytes(content); out.flush(); out.close(); // flush and close */ //记录发送请求时间 long start = System.currentTimeMillis(); //Get Session ID String key = ""; if (connection != null) { for (int i = 1; (key = connection.getHeaderFieldKey(i)) != null; i++) { if (key.equalsIgnoreCase("set-cookie")) { sessionId = connection.getHeaderField(key); sessionId = sessionId.substring(0, sessionId.indexOf(";")); } } } InputStream is = connection.getInputStream(); BufferedInputStream bis = new BufferedInputStream(is); FileOutputStream fos = new FileOutputStream(new File("e:/1111111.txt")); BufferedOutputStream bos = new BufferedOutputStream(fos); byte[] temp = new byte[ServerServlet.BUFFER_SIZE]; int size = 0; while ((size = bis.read(temp)) != -1) { bos.write(temp, 0, size); } ServerServlet.usedMemory(4); bos.flush();//刷新此缓冲的输出流。这迫使所有缓冲的输出字节被写出到底层输出流中。 bos.close(); bis.close(); // BufferedReader br = new BufferedReader(new InputStreamReader(is)); // // String str = null; // StringBuilder sb = new StringBuilder(); // // while ((str = br.readLine()) != null) { // System.out.println(str); // } //记录将从连接请求返回的数据写到文件完毕的时间 /*long end = System.currentTimeMillis(); System.out.println("cost time: " + (end - start) + " ms");*/ //关闭连接 connection.disconnect(); } }
发表评论
-
org.apache.catalina.util.DefaultAnnotationProcessor cannot be cast to org.ap解决方案
2014-05-09 09:24 863是tomcat的lib文件夹jar包和项目的lib文件下的j ... -
基于mock对象和JUnit框架简化Spring Web组件单元测试(1)
2014-03-13 14:25 1793对于Java组件开发者来说,他们都盼望拥有一组能够对组件开 ... -
org.apache.taglibs.standard 转换成javax.servlet.jsp.tagext异常
2014-02-23 14:29 968java.lang.ClassCastExceptio ... -
acegi源码分析
2014-02-17 11:42 750AbstractProcessi ... -
深入研究java.lang.ThreadLocal类
2014-02-13 14:19 500一、概述 ThreadLocal是什么呢?其实Thr ... -
java synchronized详解
2014-02-13 09:38 731Java语言的关键字,当它用来修饰一个方法或者一个代码块的时 ... -
如何使用ide打jar包以及如何在cmd运行jar包
2013-12-02 00:05 1104一、怎么打jar包 第一步:选中要打jar包的工程 第二 ... -
window下Java环境配置
2013-08-29 13:54 4321.打开我的电脑--属性--高级--环境变量 ... -
Unable to read TLD "META-INF/c.tld"错误
2013-08-12 17:50 14237严重: Servlet.service() for ser ... -
According to TLD or attribute directive in tag file, attribute value does not ac
2013-07-28 23:39 15747jsp编译的时候失败,原因是servlet版本与jstl标 ... -
使用velocity启动项目报错
2013-05-21 12:12 11280启动tomcat时,出现 2007-3-15 16:42 ... -
文件解压和压缩
2013-04-14 20:42 962文件解压和压缩 /** * compress ... -
java操作properties属性文件
2013-04-14 20:40 1144java更新或增加 ... -
JAVA基本数据类型
2013-04-11 11:30 0数据类型 大小 范围 ... -
JAVA应用 之 排序
2013-02-25 10:36 876概述: 1.本文阐述对List(Array乱入)的 ... -
JAVA基础 之 Map
2013-02-25 10:27 958概述: 1.键值对,key-value,具有映射关 ... -
JAVA基础 之 Collections
2013-02-25 10:24 1281概述: 1.Collec ... -
java基础之异常
2013-02-25 09:55 937讲述: 1.五个关键字 1.tr ... -
java实现缓存技术
2013-01-27 12:48 0java实现缓存技术,有时候我们需要将一些数据缓存起来,什么时 ... -
java创建对象的几种方式
2013-01-27 10:13 6371(1) 用new语句创建对象,这是最常见的创建对象的方法。 ...
相关推荐
本项目"SOCKET TCP 文件传输 客户端 服务器端 client svever"就是基于TCP协议构建一个简单的文件传输系统,通过客户端与服务器端的交互来完成文件的发送和接收。 首先,我们要了解TCP的基本原理。TCP通过三次握手...
在这个示例中,我们将探讨如何使用Java的Socket实现文件传输,包括服务器端和客户端的实现细节。 首先,我们从服务器端开始。服务器端的核心是监听特定端口(在这个例子中是8821)上的连接请求,并在接收到连接后...
在本资源中,我们关注的是一个基于Linux系统的文件下载服务器,它包含了客户端和服务器端的实现。这样的系统设计允许用户通过客户端程序登录并选择要下载的文件,而服务器端则负责处理请求,将所需的文件传输给...
客户端代码,通过Tcp协议来进行通信,内容仅做参考,接受指正
在聊天室中,服务器端需要监听客户端的连接,并通过`InputStream`读取客户端发送的信息,然后将信息广播给其他在线的客户端;客户端则通过`OutputStream`将用户输入的信息发送给服务器。 项目结构通常包括以下部分...
在本示例中,我们将探讨如何使用C#编程语言构建一个文件传输服务器端与客户端系统。C#是一种强大的、面向对象的编程语言,尤其适合开发Windows平台上的应用程序,包括网络通信相关的项目。 首先,我们要了解文件...
3. **文件传输**:FTP客户端可以通过`STOR`命令上传文件到服务器,使用`RETR`命令下载文件。MFC的`CFtpFileFind`类可以帮助查找服务器上的文件,而`CInternetFile`则用于读写文件。 4. **错误处理**:在FTP操作中,...
在 Uinx/Linux/Windows 环境下通过 socket 方式实现一个基于 Client/Server 模式的文件传输程序
以下是对“svn服务器端和客户端安装工具”的详细解析: 1. **SVN服务器端**: SVN服务器端是整个版本控制系统的核心,它存储项目的所有历史版本和当前状态。常见的SVN服务器端软件有Apache Subversion(也称为...
本文将深入探讨如何使用VC++实现基于TFTP方式的客户端与服务器端文件传输,并结合提供的压缩包文件进行解析。 首先,TFTP协议本身相当简单,它支持两种操作模式:读(Read)和写(Write)。协议基于UDP(User ...
5. **错误处理**:无论是客户端还是服务器端,都需要处理可能出现的错误,如网络问题、文件过大、文件类型不允许等。客户端应显示相关的错误信息,而服务器端可以通过HTTP状态码和自定义响应体向客户端反馈错误。 6...
在IT领域,Socket通信是一种基于TCP/IP协议族的...客户端通过建立Socket连接,读取文件内容并写入Socket的输出流,而服务器端则接收这些数据并保存到本地。这个过程涉及到了网络编程、文件I/O和流操作等多个知识点。
在【TicTacToe2】这个文件中,我们可以推测这是游戏的源代码,可能包含了服务器端和客户端的主要类和方法。其中,TicTacToe可能表示五子棋游戏的基本逻辑,如棋盘状态的表示、游戏规则的判断等;而2可能表示游戏支持...
11203070313_李佳明_客户端和11203070313_李佳明_服务器端这两个文件或文件夹可能分别包含了客户端和服务器端的源代码。客户端的代码可能包含网络通信模块(如使用TCP/IP协议)、UI界面的实现(如Windows Forms或WPF...
本项目涉及的是使用C#编程语言实现文件传输的客户端和服务器端程序。C#是微软开发的一种面向对象的编程语言,它具有丰富的库支持,使得网络通信和文件操作变得简单。以下是关于这个项目的一些关键知识点: 1. **套...
在IT领域,尤其是在Web开发中,"web服务器端调用客户端可执行文件"是一个涉及到多个技术栈的概念。这个过程通常涉及到服务器与客户端之间的交互,利用JavaScript、PHP等技术来实现。下面将详细解释这一主题。 首先...
在文件传输应用中,客户端会创建一个Socket实例,连接到服务器端的指定IP地址和端口号。一旦连接建立,双方可以通过Socket的Send和Receive方法交换数据。 在"SendFiles.zip"中,可能包含的是服务器端的源代码。...
客户端通过Socket的输出流将文件内容写入网络,服务器端则通过输入流接收这些数据。 5. **多线程处理**: - 为了处理多个并发的客户端连接,服务器端可能需要使用多线程。每个新连接的客户端都会启动一个新的线程...
这个压缩包文件包含的资源很可能是用于创建WebSocket服务器端和HTML5客户端的示例或框架。 WebSocket协议是在2011年被IETF(互联网工程任务组)标准化的,它的设计目标是提供一种让Web应用可以直接与服务器进行全...
用socket套接字实现了文件传输,尤其适用于初学者学习socket进行创建,绑定,监听,接收等过程,服务器端和客户端进行通信的整个流程,MFC界面简单。发送端有,create ,listen,accept,send等函数;接收端有create...