java - 使用套接字发送大字符串 - java
问题描述
我想要做的是发送大于 60Kb 的字符串,这些字符串不能通过使用 DataOutputStream 的 WriteUTF 方法发送
所以基本上,我是否已经完成了搜索并将我自己的知识添加到它正在使用 getBytes("UTF-8") 方法将字符串转换为字节并将其转换回我使用 new String("UTF-8") 的字符串但是当我在准备流(DataInputStream和DataOutputStream)之后开始向我的服务器发送数据(它必须用一个字符串回应我,该字符串也使用相同的技术转换为字节)时,它们while循环读取数据永远不会结束
我的服务器:
DataInputStream dataInputStream = new
DataInputStream(sslSocket.getInputStream());
DataOutputStream dataOutputStream = new
DataOutputStream(sslSocket.getOutputStream());
byte[] bdata = new byte[1024];
while(dataInputStream.read(bdata, 0 , bdata.length) > 0){
returnData.append(new String(bdata, Charset.forName("UTF-8")));
}
String command = returnData.toString();
dataOutputStream.write(returnData.toString().getBytes("UTF-8"), 0, returnData.toString().getBytes().length);
我的客户:
dataOutputStream.write(command.getBytes("UTF-8"), 0, command.getBytes().length);
byte[] data = new byte[1024];
while(dataInputStream.read(data, 0, data.length) > 0){
stringBuilder.append(new String(data, Charset.forName("UTF-8")));
}
And then use stringBuilder.toString() to get the data out of the builder.
不能真正理解为什么,但这是我的代码,我希望你能帮我解决这个问题:
解决方案
推荐阅读
- python - Python正则表达式(regex),将JSON转换为文本文件进行解析
- android - com.android.support: 使用 androidX (1.0.2) 设计
- string - 复制给定字符串中的每个空格
- java - 如何合并流
- flutter - 我想用 iconButton 验证我的颤振表单并转到主页。但我无法将按钮与我要显示的页面链接
- ios - 文本未包含在 swift UI 中
- javascript - 页面加载时如何加载页面内容
- python - 如何将计数器集合转换为列表
- c# - ADFS 自定义身份验证提供程序元数据不匹配
- python-3.x - 如何从另一个线程中的同步代码调用异步代码?