Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我的RMI套接字只发送一个字节?_Java_Sockets_Encryption - Fatal编程技术网

Java 为什么我的RMI套接字只发送一个字节?

Java 为什么我的RMI套接字只发送一个字节?,java,sockets,encryption,Java,Sockets,Encryption,我在一个项目中工作。我想加密RMI客户端和服务器之间的信息。我在学习一些教程,比如。它们使用XOR方法进行加密 事情进展顺利。我的意思是,信息的加密和解密没有问题,但当我用Wireshark捕获数据包时,所有数据包的大小都是1字节 我分析了XorInputStream和XorOutputStream类,改变了读写方法,但什么都没有。只有一个字节的数据包 我认为这可能是Socket或ServerSocket类的问题,与Socket缓冲区大小有关 我想解决这个问题,因为应用程序使用100条通信消息只

我在一个项目中工作。我想加密RMI客户端和服务器之间的信息。我在学习一些教程,比如。它们使用XOR方法进行加密

事情进展顺利。我的意思是,信息的加密和解密没有问题,但当我用Wireshark捕获数据包时,所有数据包的大小都是1字节

我分析了XorInputStream和XorOutputStream类,改变了读写方法,但什么都没有。只有一个字节的数据包

我认为这可能是Socket或ServerSocket类的问题,与Socket缓冲区大小有关

我想解决这个问题,因为应用程序使用100条通信消息只发送几个字

我试图修改stream类中的write方法以寻找缓冲进程,以突发方式发送4个字节:

byte buf[] = new byte[4];
int i=0;

 public void write(int b) throws IOException {
   if(i<=3){
     buf[i]=(byte)((b ^ pattern) & 0xFF);
     i++;
   }
   else{
        for(int j=0;j<4;j++)
            out.write(buf[j]);
        i=0;
        buf[i]=(byte)((b ^ pattern) & 0xFF);
        i++;
   }
}
字节buf[]=新字节[4];
int i=0;
公共无效写入(int b)引发IOException{

如果(我谢谢你!解决了。必须扩展BufferedOutputStream,而不是在custom out/inputstream类中进行筛选上次发布时,您被告知代码必须发布在此处。没有任何更改。当然,在某些第三方网站上发布.RAR文件将进一步减少您的目标受众,在这种情况下,显然是零。但为什么你正在缓冲个人写作,这是一个谜。你需要的是一个<代码> BuffReDeOutToSuffs在你和呼叫者之间。如果问题得到解决,请考虑将你的解决方案标记为被接受的答案。否则它将留在未回答的问题列表中。谢谢!