首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

求高手点拨一个Socket通信项目中的异常.

2013-11-15 
求高手点拨一个Socket通信项目中的错误..求高手点拨:我在进行一个IM工具的书写时,碰到了下面的错误:我点击

求高手点拨一个Socket通信项目中的错误..
求高手点拨:
    我在进行一个IM工具的书写时,碰到了下面的错误:
    求高手点拨一个Socket通信项目中的异常.
    我点击其中倒数第二个异常连接,MyEclipse显示出下面的代码界面:
    求高手点拨一个Socket通信项目中的异常.
    我写出数据的端点的代码如下:
    求高手点拨一个Socket通信项目中的异常. 
    上图中的“readsocketUTF()”方法和“write()”方法源代码如下:
    (写出类和接收类都共用上面的方法)
    

package d_port_package;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintStream;
import java.net.Socket;

public class Lib {
    static InputStream inputstream = null;
    static OutputStream outputstream = null;
    static String MyKey = "CJCO5882";
    static PrintStream ps;
    static BufferedReader br;
static String buffer0;
static OutputStream os = null;
    
static String readsocketUTF(Socket s){
        String info = "";
        // 启用输入流
InputStream is = null;
try {
is = s.getInputStream();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
InputStreamReader isr = new InputStreamReader(is);
br = new BufferedReader(isr);
try {
buffer0 = br.readLine() + "\r\n";
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
info = Systemcrypt.HloveyRC4(buffer0.trim(),MyKey);
        return info;
    }

static void write(Socket s,String str0){
try {
os = s.getOutputStream();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
ps = new PrintStream(os);
String str = Systemcrypt.HloveyRC4(str0,MyKey);
try {
os = s.getOutputStream();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
ps.println(str);
}
}

    上面的“Systemcrypt类”的源代码如下:
    
package d_port_package;
public class Systemcrypt{

public static String HloveyRC4(String aInput,String aKey)   
    {   
        int[] iS = new int[256];   
        byte[] iK = new byte[256];   
          
        for (int i=0;i<256;i++)   
            iS[i]=i;   
              
        int j = 1;   
          
        for (short i= 0;i<256;i++)   
        {   
            iK[i]=(byte)aKey.charAt((i % aKey.length()));   
        }   
          
        j=0;   
          
        for (int i=0;i<255;i++)   
        {   
            j=(j+iS[i]+iK[i]) % 256;   
            int temp = iS[i];   
            iS[i]=iS[j];   
            iS[j]=temp;   
        }   
      
      
        int i=0;   
        j=0;   
        char[] iInputChar = aInput.toCharArray();   
        char[] iOutputChar = new char[iInputChar.length];   


        for(short x = 0;x<iInputChar.length;x++)   
        {   
            i = (i+1) % 256;   
            j = (j+iS[i]) % 256;   
            int temp = iS[i];   
            iS[i]=iS[j];   
            iS[j]=temp;   
            int t = (iS[i]+(iS[j] % 256)) % 256;   
            int iY = iS[t];   
            char iCY = (char)iY;   
            iOutputChar[x] =(char)( iInputChar[x] ^ iCY) ;      
        }   
          
        return new String(iOutputChar);   
                  
    } 
}


    求高手点拨:
    第一幅图中的错误,是什么原因造成的...
    谢谢高手的点拨!!
    一百分奉上!!
                                                                一位日日夜夜向着理想奔跑的筑梦者
                                                                2013年11月13日22点32分 Java调试 Java异常 Java?SE Java?Socket Java?改错
[解决办法]
乱码导致,数字转换出错。
[解决办法]
出乱码了。第一个的85行,Integer.parseInt参数问题。检查下为什么乱码

热点排行