电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

使用Java實現網絡傳輸數據的壓縮

瀏覽:7日期:2024-06-22 08:01:25
內容: 出自:csdn bootcool 壓縮數據怎樣壓縮不以文件為基礎的數據12月7日, 2002Q: 本周,我回答了兩個使用Java進行數據壓縮的問題.第一個問題是: 我怎樣才能壓縮那些不在文件中的數據.第二個問題是: 我以極大的熱情閱讀了Todd Sundsted的'壓縮你的數據,從而提高你的網絡應用程序的性能',但是讀完后我卻有點失望.當我讀到文章標題時我很高興.我想我總算找到了解決問題的辦法了.在我們的公司,我們試圖提高一個組織數據的RMI應用程序的性能.服務器端進行了絕大部分的處理和優化.我們花了一年半的時間去提高性能,但是現在看來瓶頸在于數據的傳輸上.在一天的任何時間內,我們都有可能在客戶和服務器之間傳送成千上萬的數據.一種可能的解決辦法,我建議我們能夠在把數據返回給客戶端時先壓縮這些數據,這在Todd的文章中已經說得很清楚了.但是,文章中的例子卻是壓縮文件,而不是我們所需要的----對數據進行壓縮.在RMI中的實現中,我們先從數據庫取得數據,再把數據放入一個列表中,接著把這個列表返回給客戶端,最后再把它們插入JTable中.我想在把數據返回給客戶時,首先把列表中的數據壓縮,然后在客戶端解壓縮,最后把數據插入到表格中.這樣的想法可行嗎?A:最近我收到了一些關于Todd的文章的疑問.很多讀者看起來對文章中的舉例很疑惑.因為文章中的例子是以文件壓縮為核心的.首先回答第一個問題,當你使用ZipInputStream 和 ZipOutputStream 并沒有強制你必須使用文件.唯一要注意的是你必須把數據轉換為字節數組的形式.第二個問題比較棘手.在網絡中,以RMI方式通信就需要作一些調整了.為了在傳送數據之前就讓RMI進行數據壓縮,你必須創建一個能夠壓縮數據的新的套接字.然后,當你創建了一個套接字后,你得告訴RMI使用這一套接字.以下是創建一個RMI形式的套接字的簡要步驟:1:選擇或者創建一個新的套接字.(可以參看SUN'S的'創建一個典型的套接字').2:創建一個服務器端的套接字.3:創建一個RMIClientSocketFactory4:創建一個RMIServerSocketFactory5:創建一個繼承了UnicastRemoteObjec的遠程對象,從而使用新的factories.根據這一大致的想法,我們來看每一步如何具體的實現.步驟1: 創建ZipSocket 由于要進行Zip壓縮,我們重新創建這樣的套接字mport java.io.InputStream;import java.io.OutputStream;import java.util.zip.ZipInputStream;import java.util.zip.ZipOutputStream;import java.net.Socket;public class ZipSocket extends Socket {private InputStream in;private OutputStream out;public ZipSocket() { super(); }public ZipSocket(String host, int port) throws IOException {super(host, port);}public InputStream getInputStream() throws IOException {if (in == null) {in = new ZipInputStream(super.getInputStream());}return in;}public OutputStream getOutputStream() throws IOException {if (out == null) {out = new ZipOutputStream(super.getOutputStream());}return out;}public synchronized void close() throws IOException {OutputStream o = getOutputStream();o.flush();super.close();}}步驟2: 創建ZipServerSocket import java.net.ServerSocket;import java.net.Socket;import java.io.IOException;public class ZipServerSocket extends ServerSocket{public ZipServerSocket(int port) throws IOException { super(port);}public Socket accept() throws IOException { Socket socket = new ZipSocket();implAccept(socket);return socket;}}步驟3:創建ZipClientSocketFactory 客戶端的factory的創建必須遵循以下的形式: import java.io.IOException; import java.io.Serializable; import java.net.Socket; import java.rmi.server.RMIClientSocketFactory;public class ZipClientSocketFactory implements RMIClientSocketFactory, Serializable { public Socket createSocket(String host, int port) throws IOException { ZipSocket socket = new ZipSocket(host, port); return socket; } }步驟4:創建ZipServerSocketFactory import java.io.IOException; import java.io.Serializable; import java.net.ServerSocket; import java.rmi.server.RMIServerSocketFactory; public class ZipServerSocketFactory implements RMIServerSocketFactory, Serializable { public ServerSocket createServerSocket(int port) throws IOException { ZipServerSocket server = new ZipServerSocket(port); return server; } }步驟5: 創建一個繼承了UnicastRemoteObjec的遠程對象,從而使用新的factories. public class YourRMIObject extends UnicastRemoteObject {public YourRemoteObject( int port ) {super( port, new ZipClientSocketFactory(), new ZipServerSocketFactory() );}// 剩下的是你自己的程序實現}現在你的通信數據得到了壓縮.關于作者:Tony Sintes 是一個獨立咨詢人,同時也是First Class Consulting, Inc. 的創始人.這一咨詢公司主要致力與對各個不同的企業系統進行量身定制和培訓 . 業余時間,Tony 是一個積極的自由作家,同時也是Sams出版的的作者 (Sams, 2001; ISBN: 0672321092). 資源:To download the source code that accompanies this article, go to: http://www.javaworld.com/javaworld/javaqa/2001-12/ziprmi/01-qa-1207-ziprmi.zip 'Zip Your Data and Improve the Performance of Your Network-Based Applications,' Todd Sundsted (JavaWorld, November 1998): http://www.javaworld.com/javaworld/jw-11-1998/jw-11-howto.html 'Creating a Custom RMI Socket Factory,' (Sun Microsystems, 1999): http://java.sun.com/products/jdk/1.2/docs/guide/rmi/rmisocketfactory.doc.html 'Creating a Custom Socket Type,' (Sun Microsystems, 1999): http://java.sun.com/products/jdk/1.2/docs/guide/rmi/sockettype.doc.html Be sure to check out Tony's suggested reading list at: http://www.firstclassconsulting.net/reading.html For more RMI stories, visit the RMI / RMI-IIOP section of JavaWorld's Topical Index: http://www.javaworld.com/channel_content/jw-rmi-index.shtml Want more? See the Java Q&A Index for the full Q&A catalog: http://www.javaworld.com/columns/jw-qna-index.shtml For over 100 insightful Java tips from some of the best minds in the business, visit JavaWorld's Java Tips Index: http://www.javaworld.com/columns/jw-tips-index.shtml Learn the basics of client-side Java in our Java Beginner discussion. Core topics include the Java language, the Java Virtual Machine, APIs, and development tools: http://forums.idg.net/webx?50@@.ee6b804 Sign up for JavaWorld's free Applied Java newsletter: http://www.idg.net/jw-subscribe You'll find a wealth of IT-related articles from our sister publications at IDG.net 譯者:我覺得這篇文章很有實用性,并且告訴了我們一種在網絡通信時進行數據壓縮的一個可行的解決辦法.所以把它翻譯出來,希望大家都能學到這一方法.這篇文章翻譯起來比較簡單.但是由于水平有限,如果不對的地方懇請大家指正. bootcool@263.net. Java, java, J2SE, j2se, J2EE, j2ee, J2ME, j2me, ejb, ejb3, JBOSS, jboss, spring, hibernate, jdo, struts, webwork, ajax, AJAX, mysql, MySQL, Oracle, Weblogic, Websphere, scjp, scjd
標簽: Java
相關文章:
主站蜘蛛池模板: 北京环球北美考试院【官方网站】|北京托福培训班|北京托福培训 | 武汉天安盾电子设备有限公司 - 安盾安检,武汉安检门,武汉安检机,武汉金属探测器,武汉测温安检门,武汉X光行李安检机,武汉防爆罐,武汉车底安全检查,武汉液体探测仪,武汉安检防爆设备 | SDI车窗夹力测试仪-KEMKRAFT方向盘测试仪-上海爱泽工业设备有限公司 | 空心明胶胶囊|植物胶囊|清真胶囊|浙江绿键胶囊有限公司欢迎您! | 成都办公室装修-办公室设计-写字楼装修设计-厂房装修-四川和信建筑装饰工程有限公司 | uv固化机-丝印uv机-工业烤箱-五金蚀刻机-分拣输送机 - 保定市丰辉机械设备制造有限公司 | 生物除臭剂-除味剂-植物-污水除臭剂厂家-携葵环保有限公司 | 石膏基自流平砂浆厂家-高强石膏基保温隔声自流平-轻质抹灰石膏粉砂浆批发-永康市汇利建设有限公司 | YT保温材料_YT无机保温砂浆_外墙保温材料_南阳银通节能建材高新技术开发有限公司 | 切铝机-数控切割机-型材切割机-铝型材切割机-【昆山邓氏精密机械有限公司】 | China plate rolling machine manufacturer,cone rolling machine-Saint Fighter | 粤丰硕水性环氧地坪漆-防静电自流平厂家-环保地坪涂料代理 | 挤塑板-XPS挤塑板-挤塑板设备厂家[襄阳欧格] | 东莞办公家具厂家直销-美鑫【免费3D效果图】全国办公桌/会议桌定制 | 武汉EPS线条_EPS装饰线条_EPS构件_湖北博欧EPS线条厂家 | 锌合金压铸-铝合金压铸厂-压铸模具-冷挤压-誉格精密压铸 | 爆炸冲击传感器-无线遥测传感器-航天星百科 | 仿真茅草_人造茅草瓦价格_仿真茅草厂家_仿真茅草供应-深圳市科佰工贸有限公司 | 成都离婚律师|成都结婚律师|成都离婚财产分割律师|成都律师-成都离婚律师网 | 磁棒电感生产厂家-电感器厂家-电感定制-贴片功率电感供应商-棒形电感生产厂家-苏州谷景电子有限公司 | 婚博会2024时间表_婚博会门票领取_婚博会地址-婚博会官网 | 宝元数控系统|对刀仪厂家|东莞机器人控制系统|东莞安川伺服-【鑫天驰智能科技】 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 微学堂-电动能源汽车评测_电动车性能分享网 | 冷凝水循环试验箱-冷凝水试验箱-可编程高低温试验箱厂家-上海巨为(www.juweigroup.com) | 祝融环境-地源热泵多恒系统高新技术企业,舒适生活环境缔造者! | 干式变压器厂_干式变压器厂家_scb11/scb13/scb10/scb14/scb18干式变压器生产厂家-山东科锐变压器有限公司 | 钛板_钛管_钛棒_钛盘管-无锡市盛钛科技有限公司 | 回转炉,外热式回转窑,回转窑炉-淄博圣元窑炉工程有限公司 | 活性炭-蜂窝-椰壳-柱状-粉状活性炭-河南唐达净水材料有限公司 | 机房监控|动环监控|动力环境监控系统方案产品定制厂家 - 迈世OMARA | wika威卡压力表-wika压力变送器-德国wika代理-威卡总代-北京博朗宁科技 | 高考志愿规划师_高考规划师_高考培训师_高报师_升学规划师_高考志愿规划师培训认证机构「向阳生涯」 | 刑事律师_深圳著名刑事辩护律师_王平聚【清华博士|刑法教授】 | 海尔生物医疗四川代理商,海尔低温冰箱四川销售-成都壹科医疗器械有限公司 | 仿古瓦,仿古金属瓦,铝瓦,铜瓦,铝合金瓦-西安东申景观艺术工程有限公司 | 华中线缆有限公司-电缆厂|电缆厂家|电线电缆厂家 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 洗地机-全自动/手推式洗地机-扫地车厂家_扬子清洁设备 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 宝宝药浴-产后药浴-药浴加盟-艾裕-专注母婴调养泡浴 |