怎么在WindowsBulider中的TextArea中写入一个从Socket流过来的byte[]

问题描述

packageCaesar_Modification;importjava.awt.EventQueue;importjava.awt.TextArea;importjavax.crypto.BadPaddingException;importjavax.crypto.Cipher;importjavax.crypto.IllegalBlockSizeException;importjavax.crypto.NoSuchPaddingException;importjavax.crypto.spec.SecretKeySpec;importjavax.swing.JFrame;importjava.awt.Color;importjavax.swing.JButton;importjavax.swing.JTextField;importjavax.swing.JLabel;importjava.awt.event.ActionListener;importjava.awt.event.ActionEvent;importjava.io.BufferedReader;importjava.io.DataInputStream;importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.net.ServerSocket;importjava.net.Socket;importjava.security.InvalidKeyException;importjava.security.NoSuchAlgorithmException;publicclassMyServer{privateJFrameframe;privatestaticServerSocketserver_text1;privatestaticSocketyou_text1;privatestaticServerSocketserver_text2;privatestaticSocketyou_text2;privatestaticServerSocketserver_key;privatestaticSocketyou_key;privatestaticTextAreaSDealWith_Before1;privatestaticTextAreaSDealWith_Before2;privatestaticTextAreaSDealWith_After;privatestaticbyte[]keybyte;publicstaticvoidmain(String[]args){EventQueue.invokeLater(newRunnable(){publicvoidrun(){try{MyServerwindow=newMyServer();window.frame.setVisible(true);}catch(Exceptione){e.printStackTrace();}}});}publicMyServer()throwsIOException{initialize();}privatevoidinitialize()throwsIOException{frame=newJFrame();frame.getContentPane().setBackground(Color.LIGHT_GRAY);frame.setTitle("服务器端");frame.setBounds(100,100,450,300);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);frame.getContentPane().setLayout(null);finalTextAreaSDealWith_Before1=newTextArea();SDealWith_Before1.setBounds(10,78,156,50);frame.getContentPane().add(SDealWith_Before1);finalTextAreaSDealWith_After=newTextArea();SDealWith_After.setBounds(227,103,150,115);frame.getContentPane().add(SDealWith_After);JLabellblNewLabel=newJLabel("接收到的秘钥");lblNewLabel.setBounds(227,10,93,15);frame.getContentPane().add(lblNewLabel);JLabellabel_1=newJLabel("处理后");label_1.setBounds(227,78,54,15);frame.getContentPane().add(label_1);JButtonbutton_1=newJButton("清除");button_1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){SDealWith_After.setText("");SDealWith_Before1.setText("");SDealWith_Before2.setText("");}});button_1.setBounds(269,228,93,23);frame.getContentPane().add(button_1);finalTextAreaPri_KeyS=newTextArea();Pri_KeyS.setBounds(227,27,150,43);frame.getContentPane().add(Pri_KeyS);finalTextAreaSDealWith_Before2=newTextArea();SDealWith_Before2.setBounds(10,159,156,59);frame.getContentPane().add(SDealWith_Before2);JButtonbtnNewButton_1=newJButton("开启秘钥通道");btnNewButton_1.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){try{server_key=newServerSocket(5679);you_key=server_key.accept();InputStreamis=you_key.getInputStream();try{inttotal=is.available();keybyte=newbyte[total];Pri_KeyS.setText(keybyte.toString());server_key.close();you_key.close();}catch(IOExceptione1){e1.printStackTrace();}}catch(IOExceptione1){e1.printStackTrace();}}});btnNewButton_1.setBounds(10,6,150,23);frame.getContentPane().add(btnNewButton_1);JButtonbtnNewButton=newJButton("解密");btnNewButton.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){InputStreamin_1=null;InputStreamin_2=null;try{in_1=you_text1.getInputStream();in_2=you_text2.getInputStream();inttotal_ptext=in_1.available();inttotal_ctext=in_2.available();byte[]ctext=newbyte[total_ctext];byte[]ptext=newbyte[total_ptext];SecretKeySpeck=newSecretKeySpec(keybyte,"DESede");Ciphercp=Cipher.getInstance("DESede");cp.init(Cipher.DECRYPT_MODE,k);byte[]text=cp.doFinal(ctext);Stringp=newString(text,"UTF8");SDealWith_Before1.setText(ptext.toString());SDealWith_Before2.setText(ctext.toString());SDealWith_After.setText(p);}catch(IOExceptione2){e2.printStackTrace();}catch(NoSuchAlgorithmExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}catch(NoSuchPaddingExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}catch(InvalidKeyExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}catch(IllegalBlockSizeExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}catch(BadPaddingExceptione1){//TODOAuto-generatedcatchblocke1.printStackTrace();}try{you_text1.close();server_text1.close();}catch(IOExceptione1){e1.printStackTrace();}}});btnNewButton.setBounds(111,228,93,23);frame.getContentPane().add(btnNewButton);JButtonbtnNewButton_2=newJButton("开启密文通道");btnNewButton_2.addActionListener(newActionListener(){publicvoidactionPerformed(ActionEvente){try{server_text1=newServerSocket(5678);you_text1=server_text1.accept();server_text2=newServerSocket(5677);you_text2=server_text2.accept();}catch(IOExceptione1){e1.printStackTrace();}}});btnNewButton_2.setBounds(10,39,150,23);frame.getContentPane().add(btnNewButton_2);JLabellblNewLabel_2=newJLabel("输入UTF8字节");lblNewLabel_2.setBounds(20,61,72,23);frame.getContentPane().add(lblNewLabel_2);JLabellbldes=newJLabel("通过DES加密后");lbldes.setBounds(20,134,93,23);frame.getContentPane().add(lbldes);}}运行时总是显示空指针异常,秘钥没有传到这个客户端里。。Exceptioninthread"AWT-EventQueue-0"java.lang.IllegalArgumentException:Emptykeyatjavax.crypto.spec.SecretKeySpec.<init>(SecretKeySpec.java:96)atCaesar_Modification.MyServer$4.actionPerformed(MyServer.java:147)atjavax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)atjavax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)atjavax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)atjavax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)atjavax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)atjava.awt.Component.processMouseEvent(Component.java:6505)atjavax.swing.JComponent.processMouseEvent(JComponent.java:3321)atjava.awt.Component.processEvent(Component.java:6270)atjava.awt.Container.processEvent(Container.java:2229)atjava.awt.Component.dispatchEventImpl(Component.java:4861)atjava.awt.Container.dispatchEventImpl(Container.java:2287)atjava.awt.Component.dispatchEvent(Component.java:4687)atjava.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)atjava.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)atjava.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)atjava.awt.Container.dispatchEventImpl(Container.java:2273)atjava.awt.Window.dispatchEventImpl(Window.java:2719)atjava.awt.Component.dispatchEvent(Component.java:4687)atjava.awt.EventQueue.dispatchEventImpl(EventQueue.java:729)atjava.awt.EventQueue.access$200(EventQueue.java:103)atjava.awt.EventQueue$3.run(EventQueue.java:688)atjava.awt.EventQueue$3.run(EventQueue.java:686)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)atjava.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)atjava.awt.EventQueue$4.run(EventQueue.java:702)atjava.awt.EventQueue$4.run(EventQueue.java:700)atjava.security.AccessController.doPrivileged(NativeMethod)atjava.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)atjava.awt.EventQueue.dispatchEvent(EventQueue.java:699)atjava.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)atjava.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)atjava.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)atjava.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)atjava.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)atjava.awt.EventDispatchThread.run(EventDispatchThread.java:91)

时间: 2024-08-26 07:17:40

怎么在WindowsBulider中的TextArea中写入一个从Socket流过来的byte[]的相关文章

请问matlab中如何用fwrite写入一个图像文件

问题描述 给了bip,bsq,bil不同格式的图像文件,现在需要用fwrite将他们写入文件,怎么写啊?

Jsp如何读取varchar类型,怎么显示在textarea中(急)

问题描述 我要读取图书简介(varchar类型字段),然后显示在网页中的textarea中,试了几次都不行,哪位高手帮帮忙 解决方案 解决方案二:知道怎么弄了O(∩_∩)O~解决方案三:呵呵,varchar类型对应的就是javaString类型

lash轮播+ js+ xml+-几个flash轮播,求把XML中的参数直接写入js或者静态html中

问题描述 几个flash轮播,求把XML中的参数直接写入js或者静态html中 js部分: <!-- var so = new SWFObject(""/home/home_features.swf""visualMovie""935""470""9""#ffffff""); so.addParam(""wmode""tr

jQuery替换textarea中换行的方法

 昨天同事在学习jQuery的时候,希望使用替换掉textarea中的换行. html部分: 1 2 3 4 <fieldset> <textarea id="ncontent"></textarea> </fieldset> <button id="submit">提 交</button> js部分: 1 2 3 4 5 6 7 8 9 $(document).ready(function()

如何用Javascript获得TextArea中的光标位置

javascript|光标 小弟最近在写一个在线编辑器,UBB版的,由于没有使用弹出窗口,所以,在添加代码的时候,只能添在TextArea的最后面,无法在光标之前插入,于是在网上疯狂的找资料,工夫不负有心人,终于被我找到了如何获得TextArea中的位置,但是如果TextArea中有很多内容的时候,会显得很闪烁.其代码如下. function getPos(obj) { obj.focus(); var workRange=document.selection.createRange(); ob

javascript实现textarea中tab键的缩排处理方法

  本文实例讲述了javascript实现textarea中tab键的缩排处理方法.分享给大家供大家参考.具体如下: 网上搜索了一下相关的解决方法,其它的有使用两三行javascript解决的,但都有一些小小的问题.还有使用JQuery的,也非常简洁. 本文的javascript代码实现了在TEXTAREA中输入TAB键并自动缩进的功能.不过这段代码在谷歌浏览器中不能正常执行,在 代码如下: sel =event.srcElement.document.selection.createRange

jQuery往textarea中光标所在位置插入文本的方法

  本文实例讲述了jQuery往textarea中光标所在位置插入文本的方法.分享给大家供大家参考.具体实现方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 <html> <

一个JavaScript处理textarea中的字符成每一行实例

 <!doctype html>  <html lang="en">    <head>    <meta charset="utf-8">    <title>每天一个JavaScript实例-处理textarea中的字符成每一行</title>    <script>                function clicka(){          console.log(&

Jquery实现点击按钮,连续地向textarea中添加值的实例代码

 本篇文章主要是对Jquery实现点击按钮,连续地向textarea中添加值的实例代码进行了介绍,需要的朋友可以过来参考下,希望对大家有所帮助 代码如下:    代码如下: <%@ page language="java" contentType="text/html; charset=gbk"     pageEncoding="gbk"%>     <%@ include file="/pages/common/t