- 浏览: 919300 次
- 性别:
- 来自: 黑龙江
文章分类
- 全部博客 (209)
- struts1 (3)
- hibernate3 (19)
- java (13)
- spring2 (5)
- netBeans (1)
- eclipse (1)
- JSF (1)
- DIV+CSS篇章 (1)
- jFreeChart+Oracle之曲线,柱状及饼状图的实现 (1)
- JSF知识与技巧 (3)
- Oracle数据类型的介绍与比较 (2)
- J2EE (2)
- Ajax技术 (4)
- javaScript技术 (25)
- struts2 (16)
- C/C++程序设计 (1)
- oracle系统学习 (29)
- 算法分析 (0)
- Linux实践 (7)
- extjs开发经验 (13)
- flex开发总结 (1)
- FusionCharts总结 (0)
- 高级数据库总结 (0)
- SVG拓扑图开发总结 (0)
- CSS (1)
- CSS使用简介 (1)
- SVG (0)
- DOJO (0)
- Junit测试 (0)
- lucene (24)
- solr (6)
- tokyo tyrant 技术 (7)
- Html5 (1)
- 算法与数据结构 (0)
- 物联网相关技术学习 (0)
- UI设计 (1)
- webservice (0)
- Android (5)
- hibernate4 (3)
- solrcloud (0)
- dorado5 (0)
- dorado7 (0)
- elasticsearch (0)
- GWT (0)
- node.js (0)
- 并发编程 (1)
- 大数据 (1)
- 项目经验 (5)
最新评论
-
cs261244787:
楼主好人! 平安
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
wxluck666:
我也赞一个 很有用
struts2,hibernate4,spring3配置时问题汇总及解决办法 -
xinsiyou:
牛逼,就是样式被搞没了
JS实现选项右移,左移,向上,向下调整顺序 -
unnamed__:
这代码风格就像一坨翔
java获取数据库的列名,类型等信息
1.服务器端:使用TT存储数据,开启服务端:
2.基于http协议的客户端实现代码:
cd /home/wlh/tt/tokyotyrant/bin/ ./ttserver -host 127.0.0.1 -port 1998 -ulog ulog-1 -sid 1 casket.tch
2.基于http协议的客户端实现代码:
package com.tt.client; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStream; import java.io.OutputStreamWriter; import java.net.HttpURLConnection; import java.net.URL; public class HttpClientTest { //服务端主机地址 public static final String TTSERVER_HOST = "http://10.236.0.12"; //服务端端口号 public static final int TTSERVER_PORT = 1998; /** * @date 2011.12.26 * @Administrator wanglihu * @throws IOException */ public static void main(String[] args) throws IOException { HttpRequest hq = new HttpRequest(); //存储数据,发送put请求 String msg = hq.put("test_key", "test_value", 0, TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//test_valueCreated msg = hq.put("test_key","test_value1", 0,TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//Exception in thread "main" java.io.FileNotFoundException: http://10.236.0.12:1998/test_key //通过key值获得value数据 msg = hq.get("test_key", TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//test_value msg = hq.options(TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//空值 msg = hq.head("test_key", TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//空值 msg = hq.delete("test_key", TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//OK msg = hq.get("test_key", TTSERVER_HOST, TTSERVER_PORT); System.out.println(msg);//Exception in thread "main" java.io.FileNotFoundException: http://10.236.0.12:1998/test_key } } final class HttpRequest{ public final String put(String key,String value,int flag,String host,int port) throws IOException{ if(flag < 0 || flag > 2){ flag = 0; } URL url = new URL(host + ":" + port + "/" +key); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestMethod("PUT");//总共有其中方法:GET,POST,HEAD,OPTIONS,PUT,DELETE,TRACE,CONNECT connection.setRequestProperty("HOST", host + ":" +port);//设置主机和端口号 connection.setRequestProperty("ACCEPT", "*/*");//设置可以接受的媒体(头部) //PUT有header"X-TT-PDMODE",值可以是1(同'tcrdbputkeep'),2(同'tcrdbputcat'),3(同'tcrdbput') //POST可以有header"X-TT-XNAME"或者"X-TT-MNAME"中的一个. //X-TT-XNAME等同于"tcrdbext",用于指定函数名,header"X-TT-XOPTS"用于bitwise-or选项,1(记录锁)和2(全局锁), //每个请的URI将被作为URL编码过的key对待,而实体内容被作为value,结果表示在应答的实体正文中。 //header"X-TT-MOPTS"用于bitwise-or选项,1(忽略更新日志),请求参数用"application/x-www-form-urlencoded"格式表示在实体正文中, //名字被忽略而值被作为参数列表。结果在应答的实体正文中用"application/x-www.form-url-urlencoded"格式表示 //PUT有header"X-TT-PDMODE",值可以是1(同'tcrdbputkeep'),2(同'tcrdbputcat'),3(同'tcrdbput') connection.setRequestProperty("X-TT-PDMODE:", " 2 "); //设置连接主机超市(单位:毫秒) connection.setConnectTimeout(30000); //设置从主机读取数据超时(单位:毫秒) connection.setReadTimeout(30000); connection.connect(); OutputStream outputStream = connection.getOutputStream(); //通过输出流对象构建对象输入流,以实现输出可序列化的对象 BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(outputStream)); //想对象输出流写出数据,这些数据将存到内存缓冲区中 bw.write(value); //刷新对象输出流,将任何字节都写入潜在的流中 bw.flush(); //关闭对象流,此时,不能再想对象输出流中写入任何数据,先前写入的数据存在于内存缓冲区中 //在调用下面的getInputStream()函数时才把准备好的http请求正是发送到服务器 bw.close(); //connection.getInputStream(),将内存缓冲区中封装好的完整的HTTP请求电文发送到服务端 BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream()));//注意,实际发送请求的代码段就在这里 //上面的connection.getInputStream()方法已调用,本次http请求结束,下边向对象输出流的输出已无意义。 //即使对象输出流没有调用close()方法,下面的操作也不会向对象输出流写入任何数据。 //因此,要重新发送数据时需要重新创建连接、重新设参数、重新创建流对象、重新写数据,重新发送数据 StringBuffer buffer = new StringBuffer(100); buffer.append(value); String line = null; if(br == null){ System.out.println("result is null!"); } while((line = br.readLine()) != null){ buffer.append(line); buffer.append("\r\n"); } br.close(); return buffer.toString(); } public final String get(String key , String host,int port) throws IOException{ URL url = new URL(host + ":" + port + "/" +key); //HttpURLConnection对象实际上是根据URL的请求协议(此处是http)生成的URLConnection类的子类HttpURLConnection, //故此处最好将其转化为HttpURLConnection类型的对象,以便用到HttpURLConnection更多的API HttpURLConnection connection = (HttpURLConnection) url.openConnection(); //设置是否向HttpURLConnection读入,默认情况下是false connection.setDoInput(true); //对象参数1:设置是否向HttpURLConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true,默认情况下是false connection.setDoOutput(true); //请求不能使用缓存 connection.setUseCaches(false); //设定传送的内容类型是可序列化的java对象(如果不设此项,在传送序列化对象时,当Web服务默认的不是这种类型时可能抛出java.io.EOFException) connection.setRequestProperty("Content-type", "application/x-java-serialized-object"); //设置请求的方法是"GET",默认就是GET connection.setRequestMethod("GET"); connection.setRequestProperty("HOST", host + ":" +port); connection.setRequestProperty("ACCEPT", "*/*"); //上面的配置信息必须在connect之前完成 connection.connect(); //此处的getInputStream会隐含的进行connect(即:如同调用上面的connect()方法,所以在开发中不调用上述connect()也可以) //通过输入流对象构建对象输入流,以实现输入可序列化的对象 BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer buffer = new StringBuffer(100); String line = null; if(br == null){ System.out.println("result is null!"); } while((line = br.readLine()) != null){ buffer.append(line); buffer.append("\r\n"); } br.close(); return buffer.toString(); } public final String delete(String key,String host,int port)throws IOException{ URL url = new URL(host + ":" + port + "/" +key); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestMethod("DELETE"); connection.setRequestProperty("HOST", host + ":" +port); connection.setRequestProperty("ACCEPT", "*/*"); connection.connect(); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer buffer = new StringBuffer(100); String line = null; if(br == null){ System.out.println("result is null!"); } while((line = br.readLine()) != null){ buffer.append(line); buffer.append("\r\n"); } br.close(); return buffer.toString(); } public final String options(String host,int port)throws IOException{ URL url = new URL(host + ":" + port + "/"); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestMethod("OPTIONS"); connection.setRequestProperty("HOST", host + ":" +port); connection.setRequestProperty("ACCEPT", "*/*"); connection.connect(); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer buffer = new StringBuffer(100); String line = null; if(br == null){ System.out.println("result is null!"); } while((line = br.readLine()) != null){ buffer.append(line); buffer.append("\r\n"); } br.close(); return buffer.toString(); } public final String head(String key,String host,int port)throws IOException{ URL url = new URL(host + ":" + port + "/" + key); HttpURLConnection connection = (HttpURLConnection) url.openConnection(); connection.setDoInput(true); connection.setDoOutput(true); connection.setRequestMethod("OPTIONS"); connection.setRequestProperty("HOST", host + ":" +port); connection.setRequestProperty("ACCEPT", "*/*"); connection.connect(); BufferedReader br = new BufferedReader(new InputStreamReader(connection.getInputStream())); StringBuffer buffer = new StringBuffer(100); String line = null; if(br == null){ System.out.println("result is null!"); } while((line = br.readLine()) != null){ buffer.append(line); buffer.append("\r\n"); } br.close(); return buffer.toString(); } }
发表评论
-
JDBC连接数据库的步骤及使用说明
2012-02-16 08:33 1511数据库连接的一般过程为: 1.载入JDBC驱动程序 Cla ... -
使用PinYin4j.jar将汉字转换为拼音使用实例
2011-12-29 18:11 13012package com.wlh.lucene.test2; ... -
lucene3.x中QueryParser的语法规则
2011-12-31 10:13 2049lucene提供的QueryParser,他就能够理解用户,通 ... -
基于jar包搭建sorl3.5搜索服务器
2011-12-28 16:08 2147基于jar包搭建sorl3.5搜索 ... -
使用split函数进行多个空格分割
2011-12-27 18:05 35912在项目中经常会遇到按字符分割字符串的情况,可以使用String ... -
ttulmgr命令
2011-12-27 10:16 1482'ttulmgr'命令是导入导出更新日志的工具。对于通过使用文 ... -
ttservctl命令
2011-12-26 12:11 1616命令 ttservctl 是服务器的启动脚本。他可以调用操作系 ... -
ttserver服务端命令
2011-12-26 12:07 4660ttserver命令可以启动数据库实例,再启动的时候需要指定数 ... -
tokyocabinet数据库自定义安装步骤
2011-12-26 10:02 2025tokyocabinet-1.4.47.tar.gz下载地址: ... -
tokyocabinet数据库默认安装步骤
2011-12-26 10:00 1181默认安装目录为:/usr/local/ 首先安装tokyoca ... -
TOKYO TYRANT介绍
2011-12-26 09:51 1166Tokyo Tyrant是名为Tokyo Cabinet的DB ... -
求两个日期间的月份/日/小时集合
2011-09-17 14:43 2481import java.text.DateFormat; i ... -
Java压缩中遇到中文文件名问题 貌似可以解决
2011-04-19 09:40 2163Java压缩中遇到中文文件名问题 貌似可以解决 书接上文,上 ... -
AIX系统的环境变量设置
2011-04-19 09:16 4996AIX系统的环境变量设置 用户环境的定义是通过设置环境变量 ... -
turboLinux8忘记root密码的解决办法
2010-03-07 13:34 16781.将turboLinux8系统光盘放入光驱,启动服务器,并设 ... -
删除和装载模块-hba卡
2009-05-13 22:53 2377假如rac节点上某一台服务器执行fdisk -l命令看不到共享 ... -
java读取xml文件
2009-05-10 20:56 20441.java类 package com.java.test; ... -
java语言连接MySql,Sqlserver,Oracle
2009-05-10 19:58 1238连接 MySql 数据库,代码如下: Class.forN ... -
解决linux服务器上dd操作时识别不到磁盘问题
2009-05-10 19:28 2823说明:在多块盘进行dd操作的时候,当将3块目标盘插入到母盘服务 ... -
linux客户端ntp服务配置
2009-05-10 18:56 3488================时钟同步设置========= ...
相关推荐
Java FTP客户端源代码是用于通过Java编程语言与FTP(文件传输协议)服务器进行交互的程序。FTP是一种在互联网上常用的标准文件传输协议,允许用户上传、下载和管理远程服务器上的文件。Java提供了一系列的API,如`...
在本项目中,“基于java开发的onebot协议客户端.zip”是一个使用Java编写的客户端程序,它实现了OneBot协议。OneBot协议通常用于机器人开发,允许用户通过API与聊天平台的机器人进行交互。 首先,让我们深入了解...
4. **网络通信**:客户端软件往往需要与服务器通信,涉及HTTP、HTTPS、Socket等网络协议,以及JSON或XML数据交换格式。 5. **数据库集成**:如果客户端软件需要存储和检索数据,那么了解JDBC(Java Database ...
本项目旨在提供一个基于Java的FTP客户端,以满足用户对远程文件系统的访问需求。以下是对这个项目的详细解读: 1. FTP协议基础: FTP是一种用于在网络上传输文件的标准协议,它允许用户从远程服务器获取文件或向其...
netty-mqtt是一个基于Java开发的MQTT 3.1.1协议服务端与客户端,包含113个文件,其中包括87个Java源文件、8个XML文件、7个Iml文件、3个YAML文件、3个JKS文件、2个Factories文件、1个LICENSE文件和1个Markdown文件。...
在这个基于Java的SIP协议栈实现中,我们可以通过提供的源码实例和jar包来理解和学习SIP的工作原理。 首先,我们来看标题中的“java sip 协议栈实现客户端和服务”。这意味着这个项目包含了SIP协议客户端和服务器端...
在这个“Java通过UA协议操作OPC的demo和客户端工具”资源中,我们可以看到几个关键元素: 1. **OPC UA协议**:OPC UA不仅提供了数据访问的功能,还包括了安全认证、事件处理和信息模型等高级特性。它支持基于证书的...
通过理解RTP协议原理,结合Java的网络编程接口,以及适当的第三方库,可以构建出能够接收和播放RTP流的Java客户端程序。在实际开发中,还需要关注性能优化、错误处理和兼容性测试等方面,以确保客户端的稳定性和实用...
Java基于socket实现的客户端和服务端通信功能完整实例 在Java中,Socket是实现网络通信的基础,通过Socket可以实现客户端和服务器端之间的通信。本文将详细介绍Java基于Socket实现的客户端和服务端通信功能,包括...
在本文中,我们将深入探讨Java Socket客户端代码及其在创建基于Socket的聊天室客户端中的应用。 首先,理解Socket的基本概念至关重要。Socket是TCP/IP协议族的一部分,允许两台机器(通常是一个服务器和一个客户端...
基于SSL/TLS协议的FTP客户端和服务器端的实现,结合Java的JSSE框架,提供了强大的安全保障。通过三元组认证,进一步增强了用户身份验证的复杂性和安全性。对于需要安全文件传输的场景,这样的系统是理想的选择。通过...
在IT行业中,开发CXF Java客户端是一项常见的任务,特别是在构建基于Web服务的应用程序时。CXF是一个开源框架,它提供了创建和消费SOAP和RESTful Web服务的能力。本篇将深入探讨如何利用CXF来开发Java客户端,同时也...
在这个过程中,安装JAVA环境是必要的,因为很多104协议相关的软件开发是基于Java平台的,Java提供了跨平台的优势,使得软件可以在多种操作系统上运行。 "IECServer.exe"可能就是这个模拟服务器的执行文件,用户可以...
**memCache源码分析——Java客户端** memCache是一款高性能、分布式的内存对象缓存系统,常用于减轻数据库的负载,提升应用性能。它的主要特点是基于内存存储,操作速度快,无持久化机制,适用于缓存非关键数据。在...
HTTP协议是一种基于客户端/服务器模型的应用层协议,用于传输超文本和其他多媒体资源。其工作流程简单来说是:客户端发起请求,服务器接收请求并返回响应。 ##### 2.1 请求报文结构 HTTP请求报文由三部分组成: 1....
在"基于Java Netty的UDP客户端声呐数据对接"项目中,我们主要关注如何利用Netty处理UDP通信,以及如何解析和封装SCANFISH-II型声呐系统的数据。 UDP(User Datagram Protocol)是一种无连接的传输层协议,它不保证...