Socket循环发送图片,每隔20ms发送一张,该代码运行的线程中:
@Override
public void run() {
// TODO Auto-generated method stub
ByteArrayOutputStream arrayOutputStream = new ByteArrayOutputStream();;
while (flag) {
if(client.isClosed()) break;
screenBitmap = TransferDataManager.cutBitmapListener.getBitmap();
if(screenBitmap != null && !screenBitmap.isRecycled()) {
try {
screenBitmap.compress(Bitmap.CompressFormat.PNG, 100, arrayOutputStream);
outputStream.write(arrayOutputStream.toByteArray());
outputStream.flush();
screenBitmap.recycle();
} catch (IOException e) {
// TODO Auto-generated catch block
if(callbackListener != null) callbackListener.onThrowedException(client, e);
} finally {
try {
arrayOutputStream.reset();
Thread.sleep(20);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
try {
if(outputStream != null) outputStream.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}