当socket长连接客户端发送速度大于服务端处理速度怎么办
我有一个客户端发送16进制图片数据,服务端接收后转成图片存到磁盘中的功能 ,测试的时候一张一张慢慢发处理正常的没问题,但是客户端的发送速度每秒二十多次,我本地接收到以后不知道是不是处理不过来,得到的图片都是很小的文件,也无法正常打开,请问可能是什么原因导致的,还有就是有什么方式可以解决这个问题吗。感谢!
writer = new PrintStream(mClient.getOutputStream());
InputStream inputStream = mClient.getInputStream();
byte[] bytes = new byte[4096];
int length;
int i = 0;
log.info("开始处理数据。。。");
StringBuilder info = new StringBuilder();
while (true) {
length = inputStream.read(bytes);
if (length != -1) {
info.append(bytesToHexString(bytes, 0, length));
if (length < 4096) {
i++;
log.info("本次处理后文本长度:" + info.length());
Hex2Image.saveToImgFile(info.toString().replace(" ", "").toUpperCase());
writer.println("bye");
info.setLength(0);
log.info("{}:{}已处理{}次数据", ip, port, i);
}
} else {
break;
}
}