我正在尝试在客户端和服务器之间发送加密数据。由于rsa加密是以字节数组的形式进行的。这意味着我必须改变发送数据的方式。我现在无法让它工作,我会留下我的方法(sendmessage)下面是什么处理发送的消息,如果有人能告诉我我做错了什么,这将是伟大的:)
public void sendMessage(byte[] msg){
if(msg.equals("null")){
}
else{
try{
ByteArrayOutputStream f = new ByteArrayOutputStream(CSocket.getOutputStream());
out = new PrintWriter(f);
out.write(msg);
countSend++;
}catch (IOException e){
System.out.println("ERROR");
}
}
}
对不起,我应该澄清一下,本质上csocket是一个我打开的套接字,我想通过这个套接字发送消息。我对这段代码的看法是: OutputStream can not be converted to int
在我创建 ByteArrayOutputStream
对象 f
以及 No suitable method found for write(byte[])
在线上 out.write(msg);
2条答案
按热度按时间qxsslcnc1#
我想我现在解决了我的问题。它可能不是最有效的方法,但本质上我编码的字节数组的格式,这意味着我不会失去任何数据。这意味着我以这种编码格式发送它,然后在接收端我只是简单地解码它。印刷作家这样做效果更好。
rqcrx0a62#
感谢您的澄清!请看https://docs.oracle.com/javase/10/docs/api/java/io/bytearrayoutputstream.html#write(字节%5b%5d,int,int)
byte[]的bytearrayoutputstream中的write方法还需要两个参数。类似以下的操作可能会起作用:
请告诉我这是否有用。