public voidOpenTCP() {
System.out.println("***startTCP***" + Ip + ":" +tcpPort);
tcpsendData= "1";try{
tcpSocket= newSocket(Ip, Integer.parseInt(tcpPort));//tcpSocket.setSoTimeout(1000);
} catch(Exception ex) {
Log.e("TCP连接错误:", "TCP连接错误");
Log.e("TCP连接错误:", ex.toString());
ex.printStackTrace();
}if (tcpSocket != null) {newThread(TcpReceiver).start();
}
}
Runnable TcpReceiver= newRunnable() {
@Overridepublic voidrun() {byte[] buffer0=null;byte[] buffer=null;
System.out.println("***startTCP---tcpPort***" +tcpPort);while (true) {try{//tcpSocket = new Socket(Ip, Integer.parseInt(tcpPort));//接收数据
buffer0 = new byte[10];
InputStream inputStream0=tcpSocket.getInputStream();
DataInputStream input0= newDataInputStream(inputStream0);int length0 =input0.read(buffer0);if (length0 <10) {//发送数据
OutputStream OutStream=tcpSocket.getOutputStream();
OutStream.write("1".getBytes());
OutStream.flush();String lengthMsg= new String(buffer0, 0, length0, "gb2312");
Log.e("lengthMsg:", "" +lengthMsg);int size =Integer.parseInt(lengthMsg);
buffer= new byte[size];int len = 0;int offset=0;while (len
offset=size-len;if(offset>=1024*5){
offset=1024*5;
}
len+=input0.read(buffer, len, offset);//System.out.println("***len***" + len);
}
System.out.println("***buffer.length***" +buffer.length);
final Bitmap bitmap= BitmapFactory.decodeByteArray(buffer, 0, buffer.length);
runOnUiThread(newRunnable() {
@Overridepublic voidrun() {
image.setImageBitmap(bitmap);
}
});//if (!bitmap.isRecycled()) {//bitmap.recycle();//}
} else{continue;
}//tcpSocket.close();
}catch(IOException e) {
Log.e("接收错误:", e.toString());
runOnUiThread(newRunnable() {
@Overridepublic voidrun() {
Toast.makeText(MainActivity_tcp.this, "网络接收断开", Toast.LENGTH_SHORT).show();
}
});try{
tcpSocket= newSocket(Ip, Integer.parseInt(tcpPort));
}catch(IOException e1) {
e1.printStackTrace();
}
}
}
}
};